1. 程式人生 > >keil編譯後Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588

keil編譯後Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588

ota -o 字節 art padding class 數據 ini 使用

Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588

Code : 程序中代碼所占字節大小

RO-data : Read-only-data ,存儲在flash中的常量大小。

RW-data: Read-write-data ,存儲在flash中初始化的變量。

ZI-data : Zero-Init-data ,存儲在SRAM中未初始化的變量。

ROM(Flash) size = Code+RO-data+RW-data;

RAM size = RW-data+ZI-data

可以通過.map查看占用的flash和ram大小

簡單的說就是在燒寫的時候是FLASH中的被占用的空間為:Code+RO Data+RW Data

程序運行的時候,芯片內部RAM使用的空間為: RW Data + ZI Data

摘自:https://blog.csdn.net/yuleicqut/article/details/50933441

存儲Size:

RO size: Code + RO_data

RW size: RW_data + ZI_data

ROM (minimum)size = Code + RO_data + RW_data (即燒/下載程序到FLASH/ROM時,所占用的最小空間)

Total ROM Size (Code + RO Data + RW Data)這樣所寫的程序占用的ROM的字節總數,也就是說程序所下載到ROM flash 中的大小。為什麽Rom中還要存RW,因為掉電後RAM中所有數據都丟失了,每次上電RAM中的數據是被重新賦值的,每次這些固定的值就是存儲在Rom中的,為什麽不包含ZI段呢,是因為ZI數據都是0,沒必要包含,只要程序運行之前將ZI數據所在的區域一律清零即可。包含進去反而浪費存儲空間。

RAM size: RW Data + ZI Data (即程序運行的時,RAM使用的空間)

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

技術分享圖片

keil編譯後Program Size: Code=46284 RO-data=988 RW-data=580 ZI-data=1094588