Code RO-data RW-data ZI Data是什么意思

立创EDA,中国自主研发的PCB设计工具,免费使用!云端设计!

code1

Code:代表执行的代码,程序中所有的函数都位于此处。

RO-data: 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data:代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data:代表未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

其实,知道这些也是感觉是迷糊的,是吧?

对我们有用的,只有两点:

一、下载到FLASH中的数据大小是:(Code + RO Data + RW Data)这个数据关系到占用了多少单片机的FLASH,关系到是否可以再添加程序。比如你的单片机FLASH是8K,编译程序后,发现程序已经7K了,但是工程还需要写很多程序,那就可以考虑换个FLASH大点的单片机了。

二、程序运行是要在RAM中运行的大小是:(RW Data + ZI Data) 单片机的两个重要参数,一个是上面的FLASH大小,一个是RAM大小。看了第一条,就知道这条的重要性。

重要提醒:

刚入门的,看程序的大小,会看HEX文件在WINDOWS中的占用大小来确定占用FLASH的大小,是不对的。

code3

如上图,这个HEX文件在电脑上的大小是4.46KB,但是它只会占用单片机FLSAH的1.57KB,如下图所示:

code2

(提示:在你生成的工程中的Listings文件夹里面,有一个.map后缀的文件,用“记事本”打开这个文件,拉到最后面,就有算好的大小,如上图)


关注我的微信公众号,可以第一时间看到我的文章

微信公众号科技老顽童