关于读写flash和改变常数的值问题

2019-08-14 04:58发布

stm32把常量放到指定flash区域,然后通过flah的读写把这个区域的值改了,可以实现对常数的读写吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
操作系统
1楼-- · 2019-08-14 07:23
楼主的出发点就好像 不太正确.你要的是常量,当然就不要求再修改了.不然.那还叫什么常量呀.
现在你们要求修改他们的值.那应该是变量才对.
但是变量断电就没有了.如你要求断电后,再上电此内容不变化.应该是使用EEPROM才对.
其实也是一个数据恢复的手段.类似PC的硬盘功能.
这样子话..他们仍然不叫常量.可以理解为数据的备份.保存在FLASH上.
yuqingli96
2楼-- · 2019-08-14 12:59
操作系统 发表于 2017-8-27 13:09
楼主的出发点就好像 不太正确.你要的是常量,当然就不要求再修改了.不然.那还叫什么常量呀.
现在你们要求修 ...

这样说吧,我如果要控制一个reg等的颜 {MOD},一共需要24位也就是3个u8;但是平常还要改变灯的颜 {MOD}并且要求断电重启后保存。我是不是可以用改变Flash的固定地方来达到改变常量;
static const uint8_t s_acBmpLogo030[] __attribute__((at(0X800F000)))={0x00,0x00,0x00};
比如我这样在固定地方定义了 3个u8数。我把flash这个固定地址的数据改成 0xff,0xff,0xff是不是直接读取 acBmpLogo030[] 就能读出 0xff 0xff 0xff 而不是一开始的 0x00 0x00 0x00

一周热门 更多>