Keil MDK编译器下查看占用Flash和SRAM空间大小
扫描二维码
随时随地手机看文章
在Keil MDK编译器编译后,信息栏都会显示编译情况,这其中就包含了FLASH跟SRAM的信息。如下图所示,
/*********************************************************************************************/
查看FLASH跟SRAM的占用空间问题主要看下面的语句。
Program Size: Code=29864 RO-data=123592 RW-data=60 ZI-data=3900
/*********************************************************************************************/
其中 要着重注意的是Code、RO-data、RW-data、ZI-data所代表的意思
Code:表示程序所占用 FLASH 的大小( FLASH)。
RO-data:即 Read Only-data, 表示程序定义的常量,如 const 类型( FLASH)。
RW-data:即 Read Write-data, 表示已被初始化的全局变量( SRAM)
ZI-data:即 Zero Init-data, 表示未被初始化的全局变量(SRAM)
/*********************************************************************************************/
那么FLASH和SRAM占用情况的计算方式如下所示:
flash = Code + RO-data + RW-data = 29864+ 123592+ 60= 153516 bytes
sram = RW-data + ZI-data = 60+ 3900= 3960bytes
还有一个要特别注意的是程序的大小不是.hex文件的大小,而是编译结果的Code+RO-data。
在程序初始化的时候,RW-data会从FLASH中拷贝到RAM中。
/*********************************************************************************************/
PS:
很多东西都是自己网上查阅资料,查到的,最主要的是希望能在总结过程中,理清思路。
/*********************************************************************************************/