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占用情況的計(jì)算方式如下所示:
flash = Code + RO-data + RW-data = 29864+ 123592+ 60= 153516 bytes
sram = RW-data + ZI-data = 60+ 3900= 3960bytes
還有一個(gè)要特別注意的是程序的大小不是.hex文件的大小,而是編譯結(jié)果的Code+RO-data。
在程序初始化的時(shí)候,RW-data會從FLASH中拷貝到RAM中。
/*********************************************************************************************/
PS:
很多東西都是自己網(wǎng)上查閱資料,查到的,最主要的是希望能在總結(jié)過程中,理清思路。
/*********************************************************************************************/