單片機我們都用過,我們知道單片機的FLASH有4K的,有8K的,單片機程序我們也寫過,但是我們寫好的程序有多大,你知道嗎?
程序?qū)懞貌⒕幾g后生成hex文件,這個hex文件就是要下載到單片機里的文件,這個文件的大小不能超過單片機的FLASH大小,否則就要優(yōu)化程序或者選用更大FLASH的單片機。
我們發(fā)現(xiàn)他后邊的大小是9KB,這個是程序的大小嗎?其實這是錯誤的,程序的大小要在這里看見:
Code:表示所要執(zhí)行的代碼,程序中所有的函數(shù)都位于此處。
RO-data:?表示只讀數(shù)據(jù),程序中所定義的全局常量數(shù)據(jù)和字符串都位于此處。
RW-data:表示已初始化的讀寫數(shù)據(jù),程序中定義并且初始化的全局變量和靜態(tài)變量位于此處。
ZI-data:表示未初始化的讀寫數(shù)據(jù),程序中定義了但沒有初始化的全局變量和靜態(tài)變量位于此處。
-
下載到單片機FLASH的程序是:Code+RO-data+RW-data;
-
運行在RAM中的數(shù)據(jù)是:RW-data+ZI-data;
好了,從今天起你就要知道你所寫的程序有多大該怎么看了,另外程序的大小還可以在工程目錄下的.map文件中看到:
找到.map文件,用記事本打開,拉到最后就可以看到了。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!