打印

用Flash保存设置的数据,如何知道未用Flash

[复制链接]
2276|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiepengchenghn|  楼主 | 2010-10-10 09:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟用STM32做一光源控制器,其中一些相关的设置,希望能保存到Flash中,在下次开机的时候能够直接读取出来,省去重新设置的麻烦。
在保存数据的时候,我如何确定要保存到Flash的哪个地址?哪些地址是没有被代码使用到的?
代码是如何被存放到Flash中的?是不是每次烧写代码存放的地址都相同?
谢谢各位
沙发
hgjinwei| | 2010-10-10 17:32 | 只看该作者
const uint8 config_data[size];

使用特权

评论回复
板凳
shagua0916| | 2010-10-11 14:35 | 只看该作者
从下向中长的,比如你说代码64K,那64K以上地方你用可以用来存你自己的东西了

使用特权

评论回复
地板
香水城| | 2010-10-11 18:53 | 只看该作者
看.map文件,就知道已经用了多少Flash,剩下的就是可以用的,但要注意以页对齐。

使用特权

评论回复
5
mcuisp| | 2010-10-11 18:55 | 只看该作者
比较保险的是修改xcl或icf链接文件,保证空出数据区。
然后用pragma location="section"来定义数组

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xiepengchenghn + 1
6
xixihaha0| | 2010-10-11 21:11 | 只看该作者
ls招不错,一般我是直接在boot区域后划出一部分专门用来存储

使用特权

评论回复
7
dadodo| | 2010-10-11 23:56 | 只看该作者
2楼的方法更简单

使用特权

评论回复
8
香水城| | 2010-10-12 04:38 | 只看该作者
不管哪种方法,都要注意页对齐,而且这一页中如果又空余的空间,也不能放其它代码或数据,否则擦除时就会出问题。

使用特权

评论回复
9
jgphu| | 2010-10-12 09:57 | 只看该作者
香水城 你凌晨4点是睡一觉醒来了,还是一直没睡。。

使用特权

评论回复
10
xiepengchenghn|  楼主 | 2010-10-12 16:21 | 只看该作者
2# hgjinwei

你这样写,只是把这个数组设置为只读吧,能写到Flash中?

使用特权

评论回复
11
xiepengchenghn|  楼主 | 2010-10-12 16:22 | 只看该作者
5# mcuisp

能够详述一下吗?谢谢,我用的STM32F107

使用特权

评论回复
12
xiepengchenghn|  楼主 | 2010-10-12 16:22 | 只看该作者
6# xixihaha0

能够详述一下吗?谢谢,我用的STM32F107

使用特权

评论回复
13
xiepengchenghn|  楼主 | 2010-10-12 16:24 | 只看该作者
8# 香水城

谢谢香主,我用的STM32F107,一页是2K,我用的最后一页。写入的时候用固件库中的函数,读取的时候只用用地址做强制转换读取出来,目前还没发现什么问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

267

帖子

1

粉丝