1、怎么設(shè)置可以查看單片的內(nèi)存(消耗)使用狀況?
IAR的菜單欄 -->Tools -->IDE Options -->Messages -->Show build messages選擇 ALL
?
1. Tools->option->messages show build messages設(shè)置成all?
這樣可以在編譯后看到用了多少個(gè)RAM多少Code,中間每個(gè)文件使用情況也可以看得到。
2. Project->Options...(Alt-F7))的Linker->List中勾選Generate linker map file
這樣可以生成map文件,這個(gè)就更詳細(xì)了(需要什么自己勾選)。
3. Project->Options...(Alt-F7))的C/C++ compile ->List中勾選output list file
這樣可以看到每個(gè)文件編譯的細(xì)節(jié)的list文件,還可以看到反匯編(需要什么自己勾選)
?
二、編譯信息
1、 下面什么意思
4?960?bytes?of?CODE??memory
4?150?bytes?of?DATA??memory
44?bytes?of?CONST?memory
?
4?960?個(gè)字節(jié)的代碼(占FLASH)
4150?個(gè)字節(jié)的變量數(shù)據(jù)(占RAM)
44?個(gè)字節(jié)的常量數(shù)據(jù)(占FLASH)
生成bin文件的大小=?4960+44
?
1、
9 486 bytes of CODE memory
? 404 bytes of DATA memory (+ 36 absolute )
? 520 bytes of CONST memory
?
1、的括號(hào)內(nèi)表示內(nèi)存的絕對(duì)使用量,對(duì)應(yīng)你設(shè)的全局變量大小
2、表示共享的存儲(chǔ)空間,和單片機(jī)的結(jié)構(gòu)有關(guān)
?
?
2、提問:
? 9 176 bytes of CODE? memory (+???? 30 bytes shared)
?? 568 bytes of CONST memory (+ 18 148 bytes shared)
?? 943 bytes of DATA? memory (+??? 114 bytes shared)
?
答:"+ 114 bytes shared"或linking后的"+114 bytes absolute"指的是您在程序中有144bytes 使用@ operator 或 #pragma location=operator 或__no_init volatile語法定義的數(shù)據(jù)。
也可以說是可以在匯編中定義的數(shù)據(jù)。舉例:P1OUT在430頭文件中就用到了上述語法,當(dāng)您讀寫P1OUT時(shí),編譯器和鏈接器就認(rèn)為您使用了一個(gè)上述sahred/absolute數(shù)據(jù)。 ? 編譯器和鏈接器并不能真正地辨認(rèn)出什么是RAM什么是Flash,它們使用DATA(沒有指定固定的數(shù)據(jù))和CONST/CODE(有指定固定的數(shù)據(jù))概念來工作。
?
原文:http://blog.sina.com.cn/s/blog_4c0cb1c00100vy5n.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
