版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/LinLingPeng_/article/details/9096501
一、現象
剛在寫STM32的程序,在Keil中編譯工程成功後,在下面的Bulid Ouput窗口中會輸出下面這樣一段信息:
Build target 'TEST'
compiling gpio.c...
..\..\User\Sourse\gpio.c(44): warning: #1-D: last line of file ends without a newline
linking...
Program Size: Code=21120 RO-data=476 RW-data=2744 ZI-data=2232
FromELF: creating hex file...
"..\Obj\TEST.axf" - 0 Error(s), 1 Warning(s).
二、解釋
Code是代碼佔用的空間,RO-data是 Read Only 只讀常量的大小,如const型,RW-data是(Read Write) 初始化了的可讀寫變量的大小,ZI-data是(Zero Initialize) 沒有初始化的可讀寫變量的大小。ZI-data不會被算做代碼裏因爲不會被初始化。
簡單的說就是在燒寫的時候是FLASH中的被佔用的空間爲:Code+RO Data+RW Data
程序運行的時候,芯片內部RAM使用的空間爲: RW Data + ZI Data
三、代表的意思
Code=21120:是程序中代碼所佔字節大小RO-data=476:程序中所定義的指令和常量大小
RW-data=2744:程序中已初始化的變量大小
ZI-data=2232 :程序中未初始化的變量大小