about keil


KEIL工程編譯輸出信息中有一個語句“Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=112316 ”

Code:

  即代碼域,指編譯器生成的機器指令,這些內容被存儲到ROM區。

RO-data:

  Read Only data,即只讀數據域,指程序調用的只讀數據,被存儲在ROM區,例如const關鍵字(C語言)定義的變量就是典型的RO-data。

RW-data:

  Read Write data,即可讀寫數據域,指初始化爲“非0值”的可讀寫數據,程序剛運行時,這些數據具有非0的初始值,且運行的時候它們會常駐在RAM區,因而應用程序可以修改其內容。

ZI-data:

  Zero Initialie data,即0初始化數據,指初始化爲“0值”的可讀寫數據,它與RW-data的區別是程序剛運行時這些數據初始值全都爲0,而後續運行過程與RW-data的性質一樣,它們也常駐在RAM區,因而應用程序可以更改其內容。定義時被賦予“0值”給該變量進行初始化,若定義該變量時沒有賦予初始值,編譯器會把它當ZI-data來對待,初始化爲0;RW-data和ZI-data在程序運行時放入芯片內部RAM。

  佔用FLASH空間的爲:Code,RO-data,RW-data,即ZI-data未初始化不佔用ROM空間,其只在RAM中運行,這也是爲何要區分RW-data和ZI-data的原因吧




發佈了75 篇原創文章 · 獲贊 18 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章