如何分配一段flash地址作为程序系统配置参数的存储空间

2019-07-21 01:17发布

如何非配一段地址作为程序存储空间,比如将0x08040000开始的三个扇区作为系统参数存储空间。

现在主要无法解决的问题是可以用__attribute__将地址空间分配出来,但是这种方式在写flash之后,程序被破坏系统将无法启动。

有没有更好的建议。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
jermy_z
1楼-- · 2019-07-21 04:50
编译之后  算下你的程序占用flash大小  再后移一段距离作为参数区
正点原子
2楼-- · 2019-07-21 07:46
如果数据不大,直接定义在mcu flash区域的最后一段区域,就比较保险了.
yjzhou
3楼-- · 2019-07-21 11:36
回复【2楼】jermy_z:
---------------------------------
你的意思直接对程序范围之外的地址空间进行读写操作。
但是如果我想在程序编译之前就将部分系统数据初始化,怎么操作?
jermy_z
4楼-- · 2019-07-21 13:53
 精彩回答 2  元偷偷看……
jermy_z
5楼-- · 2019-07-21 15:36
回复【3楼】yjzhou:
---------------------------------
如果你这个参数不变了  用const 直接赋值

如果要变 就按照1楼的做!
yjzhou
6楼-- · 2019-07-21 20:00
回复【5楼】jermy_z:
--------------------------------
功能如下:
1. 我在程序中初始化一段地址空间,并且将该空间作为系统参数地址空间。
2. 硬件上电后直接读该空间初始化系统。
3. 我可以通过其他方式去配置参数,也就是命令读写该地址空间参数。

一周热门 更多>