使用keil设置软复位变量不丢失的数据的区域

通过在keil中特定区域设置,确保软复位时变量test_backup的值不丢失。步骤包括修改分散加载文件project.sct,定义不初始化的内存区域RW_IRAM2,并在.c文件中使用__attribute__((section("NO_INIT"),zero_init))指定变量存储位置。软复位后,test_backup的值会在上一次基础上加1。" 105071853,9400300,phpMyAdmin 数据库管理实战指南,"['数据库', 'phpmyadmin']
摘要由CSDN通过智能技术生成

1、

勾选如上区域,修改分散加载文件。

2、编译生成,project.sct   分散加载文件,生成文件如下:

生成最新的区域。

  RW_IRAM2 0x2000BFF0 UNINIT 0x00000010  {
   .ANY (NOINT_RAM)
这个区域里的+RW +ZI不要添加,避免其他变量也加载进去。

如上命名,任意一个.c里都可以用这个段。

勾选上述配置,会生成.sct文件。不勾选就不会自动生成,这样就可以手动来修改了。

3、设置变量

unsigned char  test_backup[8] __attribute__((section("NO_INIT"),zero_init));  

    test_backup[0] = test_backup[0] + 1;
可以看到每一次软复位,就可以在上一次的数据基础上加1

下一篇发一下这一方面的理论知识。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值