当前位置: 主页>单片机>

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

2018-03-04 15:47 [单片机] 来源于:电路图之家
导读:Code:代表执行的代码,程序中所有的函数都位于此处。 RO-data: 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。 RW-data:代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。 ZI-data:代表未初始化的读写数据,

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的大小,是不对的。

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

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