亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標題: 深入剖析之通過IAR MAP文件查看目標文件內(nèi)存分配 [打印本頁]

作者: liuzhu    時間: 2015-9-10 00:56
標題: 深入剖析之通過IAR MAP文件查看目標文件內(nèi)存分配
  又是一年五四青年節(jié),也不知道自己還會像現(xiàn)在意氣風發(fā)多少個青年節(jié),也不清楚自己對技術(shù)的執(zhí)著還會一如既往的堅持多久,總之既然現(xiàn)在依舊堅定不移的“前進”著(前段日子看到奧巴馬的競爭口號就是“前進”,說不定跟俺一個境界來,哈哈),未來不可預知,但可規(guī)劃和爭取,把握好現(xiàn)在,莫要虛度光陰,我們年輕并不代表我們有浪費時間的理由~比較推崇特權(quán)的那句話,“技術(shù)源于積累,成功源于執(zhí)著”,大家共勉之~
    哈哈,感慨發(fā)完了,該回歸正事了......不知道別的地兒方怎么樣,總之濟南今天天氣是格外的好,綠樹成蔭,草長鶯飛的,不寫點東西都覺著不舒坦了,我要是文人墨客的話估計早就開始吟詩作對了,不過既然俺是工科技術(shù)男,還是寫篇技術(shù)博客來的實際吧,嘿嘿~
   好了,不天氣預報了,呵呵,來說說正題吧。本篇算是自己的一篇經(jīng)驗總結(jié)吧,這里給大家分享一下,同時也讓自己養(yǎng)成文檔總結(jié)的好習慣。為了具體化問題,我這里還是以IAR開發(fā)Kinetis為例深入介紹一下。其實map文件(內(nèi)存映射文件)可能初手開發(fā)的時候甚少有去關(guān)注它的,甚至好些都不知道它是干嘛的,呵呵,只有一些有經(jīng)驗的老手或者搞移植搞深入研究的才會去查看它,初手往往上來就是在線調(diào)試、查看內(nèi)存(這個都很少用)、看寄存器、斷點(這個用的也少)等等,但是等你了解了map文件,再去完成上述調(diào)試的時候會讓你事半功倍,且有一種運籌帷幄的感覺都不夸張。哈哈,說的這么多,還是上圖介紹吧(俺還是喜歡圖文并茂的感覺,話說喬布斯以前在每次開蘋果新品展示會的時候,你看見的絕對大多數(shù)是圖片形式的演講稿,因為喬大爺深諳這個道理,估計這也是為什么iOS,Mac OS都是UI強大的原因吧):
   首先當然要生成map文件了,注意IAR的默認設置是不生成map文件的,我們需要手動設置一下,如下圖,然后點擊準備就緒之后編譯即可在PROJDIR\FLASH_256KB_PFLASH\List文件夾下找到:


   生成之后,我們在IAR環(huán)境下打開它(當然可以以記事本直接打開,這里為了更直觀),map文件主要由以下幾部分構(gòu)成:
(1)文件頭中顯示鏈接器版本,輸出文件名,MAP 文件名以及鏈接器命令行等。
(2)RUNTIME MODEL ATTRIBUTES 部份顯示 Endian等屬性;
(3) PLACEMENT SUMMARY部份顯示各sections 在存儲器中的分布;
(4)INIT TABLE 部份顯示與初始化有關(guān)的section tables;
(5)MODULE SUMMARY部份顯示所有被連接的文件信息,包括目標文件和庫文件等;

(6)ENTRY LIST部份給出了所有函數(shù)的入口地址及其所在的目標文件。

(7)文件尾中顯示了總的代碼和數(shù)據(jù)字節(jié)數(shù)(想看下最后目標代碼占用多少Flash和多少RAM的可以從這里查到)。

   本篇就挑出我們在調(diào)試的時候常常會考慮到用到的幾個部分,當然有興趣的可以每個部分都可以看看,會讓你受益匪淺的,下面就分部分介紹下:
(1)PLACEMENTSUMMARY,該部分主要顯示目標代碼在芯片內(nèi)部的存儲器映射地址,可能會有人疑問為什么會分配到這些地址的呢,其實這些地址分配都是在前文講的Linker文件(*.icf文件)里預定義好了,IAR根據(jù)所選目標芯片就按照該定義分配地址段,然后燒寫進Flash,具體段定義可以到大前篇博客icf文件說明詳細了解。


(2)ENTRYLIST,開發(fā)工程內(nèi)所有函數(shù)的入口地址,個人覺著這部分很有用,通過該地址映射再結(jié)合調(diào)試的時候觀察內(nèi)存空間可以方便整個工程執(zhí)行情況,讓你了若指掌,而且也方便你解讀一個陌生程序的功能(例如參考別人的例程,網(wǎng)上的例程之類的),總之個人覺著這個部分用處很大,有心人可以在此處做很大文章。


(3)這是map文件末尾部分,最后給出了整個工程文件占用的資源情況,即芯片內(nèi)部Flash和RAM的使用情況,便于你對工程開發(fā)規(guī)模上的掌握,最后給出工程編譯鏈接輸出信息。







歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1