一、在keil编译输出时,可以看到如下图1所示的编译信息。

图1
其中:
Code:是指程序代码所占用的ROM大小,存储在FLASH中,程序运行期间大小不变。
RO-data:只读常量,程序中所定义的指令和常量占空间大小。程序运行期间不变。如const类型,存储在FLASH中。
RW-data:可读可写变量,已被初始化的可读可写变量所占空间大小,存储在FLASH中。程序运行期间会变,初始化时RW-data会从FLASH拷贝到SRAM。
ZI-data:没有被初始化的或者已被初始化为0的可读可写变量占空间大小。存储在SRAM中。
二、增加或减少了初始化为非0的数据,为什么RW-data大小看着好像不变
INT16 m_i16_TVolt[10];
在程序中有定义一个全局变量数组m_i16_TVolt[10],如上图可见。在使用keil编译时,可见RW-data大小为2668,如图2所示。

图2
当我修改程序,将数组进行初始化,如下:
INT16 m_i16_TVolt[10]={10,10,10,10,10,10,

1万+

被折叠的 条评论
为什么被折叠?



