about keil

来源:互联网 发布:mysql 时间戳 编辑:程序博客网 时间:2024/05/16 04:31


KEIL工程编译输出信息中有一个语句“Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=112316 ”

Code:

  即代码域,指编译器生成的机器指令,这些内容被存储到ROM区。

RO-data:

  Read Only data,即只读数据域,指程序调用的只读数据,被存储在ROM区,例如const关键字(C语言)定义的变量就是典型的RO-data。

RW-data:

  Read Write data,即可读写数据域,指初始化为“非0值”的可读写数据,程序刚运行时,这些数据具有非0的初始值,且运行的时候它们会常驻在RAM区,因而应用程序可以修改其内容。

ZI-data:

  Zero Initialie data,即0初始化数据,指初始化为“0值”的可读写数据,它与RW-data的区别是程序刚运行时这些数据初始值全都为0,而后续运行过程与RW-data的性质一样,它们也常驻在RAM区,因而应用程序可以更改其内容。定义时被赋予“0值”给该变量进行初始化,若定义该变量时没有赋予初始值,编译器会把它当ZI-data来对待,初始化为0;RW-data和ZI-data在程序运行时放入芯片内部RAM。

  占用FLASH空间的为:Code,RO-data,RW-data,即ZI-data未初始化不占用ROM空间,其只在RAM中运行,这也是为何要区分RW-data和ZI-data的原因吧




原创粉丝点击