最近一个项目需求保存一下暂时数据,而产品简单受搅扰而复位。所以需求保存一下数据,那么只要在体系复位时分不再初始化变量即可。对应MDK(keil)来说是一个比较费事的问题。经过网络上找了很多材料和测验发现总算能够了。
假如要完成以上要求,有必要设置两点,缺一不可:
1. 在MDK的选项中设置如下:
2. 有必要在程序代码中如下编写:
#define__noinit____attribute__((zero_init))// 变量不初始化为0
__noinit__ int tmp; // 变量前加上宏__noinit__
当然也能够直接:
__attribute__((zero_init))int tmp;
阐明:__noinit__不是mdk的关键字
当然也能够直接把发动代码中的__main()改成main(),也能够到达相同的意图,可是不知道有没有什么欠好的影响。