
- Code:代表執行的代碼,程序中所有的函數都位于此處。
- RO-data: 代表只讀數據,程序中所定義的全局常量數據和字符串都位于此處。
- RW-data:代表已初始化的讀寫數據,程序中定義并且初始化的全局變量和靜態變量位于此處。
- ZI-data:代表未初始化的讀寫數據,程序中定義了但沒有初始化的全局變量和靜態變量位于此處。
其實,知道這些也是感覺是迷糊的,是吧?
對我們有用的,只有兩點:
一、下載到FLASH中的數據大小是:(Code + RO Data + RW Data)這個數據關系到占用了多少單片機的FLASH,關系到是否可以再添加程序。比如你的單片機FLASH是8K,編譯程序后,發現程序已經7K了,但是工程還需要寫很多程序,那就可以考慮換個FLASH大點的單片機了。
二、程序運行是要在RAM中運行的大小是:(RW Data + ZI Data) 單片機的兩個重要參數,一個是上面的FLASH大小,一個是RAM大小。看了第一條,就知道這條的重要性。
重要提醒:
剛入門的,看程序的大小,會看HEX文件在WINDOWS中的占用大小來確定占用FLASH的大小,是不對的。

如上圖,這個HEX文件在電腦上的大小是4.46KB,但是它只會占用單片機FLSAH的1.57KB,如下圖所示:
(提示:在你生成的工程中的Listings文件夾里面,有一個.map后綴的文件,用“記事本”打開這個文件,拉到最后面,就有算好的大小)
|