我现在需要把一些数据保存在FRAM的指定位置,并且要求能掉电保存,尝试如下,使用的CCS10:
1、修改cmd文件,新增一个空间存储数据
MEMORY
{
SHARD : origin = 0x4002, length = 0x0002
}
SECTIONS
{
.sharedspace : {} > SHARD
}
然后在程序中定义变量abc到这个空间
#pragma DATA_SECTION(abc, ".sharedspace")
#pragma RETAIN(abc)
uint16_t abc;
经过测试abc能固定存储到0x4002这个位置,但是每次复位这个值就被清零了。
2、使用#pragma NOINIT和#pragma PERSISTENT指令
测试发现能够复位掉电保存,但是并不能达到存储到指定位置的目的,默认是按照.TI.persistent或者.TI.noinit指向的区间顺序存放。
请问有什么办法能同时达到掉电保存和指定位置目的的方法吗?