keil MDK编译完成后,Program Size: Code,RO-data,RW-data,ZI-data的意义
转载 2016-02-12 15:27:07
Program Size: Code=344 RO-data=252 RW-data=100 ZI-data=1024
看了多遍,总是忘,这次还是把它分析透了吧,若有不对的地方还请各位看官指正补充
固定不变的代码存在ROM或flash里;这个固定不变的代码有两种,一种是指令,一种是指令的操作数,比如查表量,const常量,变量的初始化数值等等,在哈佛结构中即是,指令总线与数据总线分别对以上两种代码进行操作;
变化的量,即在程序运行过程中经常需要改“写”的量存放在RAM中。
好了,现在开始解释上面的各种代码所表示的意义:
code=344 这个是存在ROM(flash)里的指令,这是在程序运行过程中不变的量 ,是指令,在哈佛结构中由(I-bus)指令总线读取;
RO-data (read only data)只读数据,是指令的操作数, 在哈佛结构中由数据总线(D-bus)读取;
RW-data 表示初始化了的可读写变量的大小,这个存在两个地方,初始化量存在ROM/FLASH中,由于还要对其进行“写”操作 所以RAM中也要占用相应的空间
ZI-data 即zero-initialize 未被初始化的变量,这个显然也是存在RAM中
所以该工程对ROM的需求为code+RO-data+RW-data;
RAM最大需求为RW-data+ZI-data ;
也即ROM=前三加 RAM等于后二加 前三后二是也。