找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5979|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:117358 發(fā)表于 2016-5-1 05:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)我們都用過,我們知道單片機(jī)的FLASH有4K的,有8K的,單片機(jī)程序我們也寫過,但是我們寫好的程序有多大,你知道嗎?
程序?qū)懞貌⒕幾g后生成hex文件,這個(gè)hex文件就是要下載到單片機(jī)里的文件,這個(gè)文件的大小不能超過單片機(jī)的FLASH大小,否則就要優(yōu)化程序或者選用更大FLASH的單片機(jī)。

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


我們發(fā)現(xiàn)他后邊的大小是9KB,這個(gè)是程序的大小嗎?其實(shí)這是錯(cuò)誤的,程序的大小要在這里看見:
Code:表示所要執(zhí)行的代碼,程序中所有的函數(shù)都位于此處。
RO-data: 表示只讀數(shù)據(jù),程序中所定義的全局常量數(shù)據(jù)和字符串都位于此處。
RW-data:表示已初始化的讀寫數(shù)據(jù),程序中定義并且初始化的全局變量和靜態(tài)變量位于此處。
ZI-data:表示未初始化的讀寫數(shù)據(jù),程序中定義了但沒有初始化的全局變量和靜態(tài)變量位于此處。
通過上面的描述就可以看出:
  • 下載到單片機(jī)FLASH的程序是:Code+RO-data+RW-data;
  • 運(yùn)行在RAM中的數(shù)據(jù)是:RW-data+ZI-data;


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

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


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表