Keil MDK下如何设置非零初始化变量.pdfVIP

  • 73
  • 0
  • 约4.31千字
  • 约 4页
  • 2022-05-30 发布于四川
  • 举报
一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM 中的数据,用 来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk 在默认情况下,任 何形式的复位都会将RAM 区的非初始化变量数据清零。如何设置非初始化数据变量不被零 初始化,这是本篇文章所要探讨的。 在给出方法之前,先来了解一下代码和数据的存放规则、属性,以及复位后为何默认 非初始化变量所在RAM 都被初始化为零了呢。 什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定准 确,所以喜欢举一些例子来辅助理解文字。) 定义一个变量:int nTimerCount=20;变量nTimerCount 就是初始化变量,也就是已 经有初值; 如果定义变量:int nTimerCount;变量nTimerCount 就是一个非赋值的变量,Keil MDK 默认将它放到属性为ZI 的输入节。 那么,什么是“ZI”,什么又是“输入节”呢?这要了解一下ARM 映像文件(image)的 组成了,这部分内容略显无聊,但我认为这是非常有必要掌握的。 ARM 映像文件的组成:  一个映像文件由一个或多个域(region,也有译为“区”)组成  每个域包含一个或多个输出段(section,也有

文档评论(0)

1亿VIP精品文档

相关文档