IAR下如何将定义的变量存储到STM8的FLASH区???

2019-07-19 20:21发布

我在IAR FOR STM8下定义了一个数组,用ST-LINK仿真看地址是在RAM区,这个数组内的数据我不需要做修改,只是用的时候读一下,有没有方法存储到FLASH区呢?求大神帮帮忙啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
太平洋冲浪者
1楼-- · 2019-07-19 23:25
问题解决了:__root const u16 flash_a=0x5a5a;这样定义,常量flash_a就是存储在STM8 flash区的了。
太平洋冲浪者
2楼-- · 2019-07-20 01:25
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-20 03:17
 精彩回答 2  元偷偷看……
太平洋冲浪者
4楼-- · 2019-07-20 08:19
安原子哥说的用const不用__root 仿真调试了一下,是可以的。仿真时我注意到一个细节,只用const定义的变量没有使用时仿真观察(注意watch对话框flash_a)如下图:


用__root const 定义的变量没有使用和只用const定义变量但使用了仿真时观察图(注意watch对话框flash_a)如下:




是不是const定义的变量在没有使用时IAR做了优化就不占用flash空间



正点原子
5楼-- · 2019-07-20 13:26
有可能,你在函数里面加多一句:if(flash_a)printf(“ok”);试试
太平洋冲浪者
6楼-- · 2019-07-20 17:18
 精彩回答 2  元偷偷看……

一周热门 更多>