新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 你寫的單片機(jī)程序有多大,你知道嗎?

你寫的單片機(jī)程序有多大,你知道嗎?

作者: 時(shí)間:2017-11-17 來(lái)源:網(wǎng)絡(luò) 收藏

  我們都用過(guò),我們知道的FLASH有4K的,有8K的,程序我們也寫過(guò),但是我們寫好的程序有多大,你知道嗎?

本文引用地址:http://2s4d.com/article/201711/371647.htm

  程序?qū)懞貌⒕幾g后生成hex文件,這個(gè)hex文件就是要下載到單片機(jī)里的文件,這個(gè)文件的大小不能超過(guò)單片機(jī)的FLASH大小,否則就要優(yōu)化程序或者選用更大FLASH的單片機(jī)。

  如下圖所示,就是一個(gè)編譯好的hex文件:

    

 

  我們發(fā)現(xiàn)他后邊的大小是9KB,這個(gè)是程序的大小嗎?其實(shí)這是錯(cuò)誤的,程序的大小要在這里看見(jiàn):

    

 

  Code:表示所要執(zhí)行的代碼,程序中所有的函數(shù)都位于此處。

  RO-data:表示只讀數(shù)據(jù),程序中所定義的全局常量數(shù)據(jù)和字符串都位于此處。

  RW-data:表示已初始化的讀寫數(shù)據(jù),程序中定義并且初始化的全局變量和靜態(tài)變量位于此處。

  ZI-data:表示未初始化的讀寫數(shù)據(jù),程序中定義了但沒(méi)有初始化的全局變量和靜態(tài)變量位于此處。

  通過(guò)上面的描述就可以看出:

  下載到單片機(jī)FLASH的程序是:Code+RO-data+RW-data;

  運(yùn)行在RAM中的數(shù)據(jù)是:RW-data+ZI-data;

  好了,從今天起你就要知道你所寫的程序有多大該怎么看了,另外程序的大小還可以在工程目錄下的.map文件中看到:

    

 

  找到.map文件,用記事本打開(kāi),拉到最后就可以看到了。



關(guān)鍵詞: 單片機(jī)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉