99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

stm32單片機基礎知識總結(六)

大家好!這篇是分享stm32單片機基礎知識的第6篇。主要記錄基于keil+stm32 生成的map文件的簡單介紹。這篇文章參考了大量網上的資料,結合我個人的理解,對這塊知識進行了一個梳理。介紹的不是特別具體,難免也存在紕漏之處。如有不妥之處,還請后臺留言,進行指正。

以下是今天分享內容的概要

一、什么是map文件

二、map文件的內容介紹

三、map文件的用處

四、如何生成map文件

五、如何在keil5打開map文件

一、什么是map文件

map文件是通過編譯器編譯之后,集程序、數據及IO空間的一種映射文件。

二、map文件的內容介紹

map文件內容分類

從上面輸出配置可以看得出來map文件大概包含了哪些信息。map文件將其分為如下五大類:

1、節區的跨文件引用(Section Cross References)

這部分主要是不同文件中函數的調用關系。

舉下圖的第一句要表達的意思是,stm32f4xx_adc.c 中的函數ADC_DeInit 調用了stm32f4xx_rcc.c中的函數RCC_APB2PeriphResetCmd;

2、刪除無用節區(Removing Unused input ps from the image)

這部分列出了在鏈接過程它發現工程中未被引用的節區,這些未被引用的節區將會被刪除(指不加入到*.axf 文件,不是指在*.o 文件刪除),這樣可以防止這些無用數據占用程序空間。

3、映射符號表(Image Symbol Table (Local Symbols Global Symbols)

Image Symbol Table:映射符號表,這個表列出了被引用的各個符號在存儲器中的具體地址、占據的空間大小等信息。

Symbols分為兩大類

1.Local Symbols局部

2.Global Symbols全局

內容要點

1.Symbol Name:符號名稱

2.Value:存儲對應的地址;

大家會發現有0x0800xxxx、0x2000xxxx這樣的地址。

0x0800xxxx指存儲在FLASH里面的代碼、變量等。

0x2000xxxx指存儲在內存RAM中的變量Data等。

3.Ov Type:符號對應的類型

符號類型大概有幾種:Number、Section、Thumb Code、Data等;

細心的朋友會發現:全局、靜態變量等位于0x2000xxxx的內存RAM中。

4.Size:存儲大小

這個容易理解,我們懷疑內存溢出,可以查看代碼存儲大小來分析。

5.Object(Section):段目標

這里一般指所在模塊(所在源文件)。

如下圖所示:

4、存儲器映像索引(Memory Map of the image)

映像文件可以分為加載域(Load Region)和運行域(Execution Region) 。

加載域就是程序在 Flash 中的實際存儲,而運行域是芯片上電后的運行狀態。下圖中標①為加載域,標②為運行域。

5、映像組件大?。↖mage component sizes)

這部分包含了各個使用到的*.o 文件的空間匯總信息、整個工程的空間匯總信息以及占用不同類型存儲器的空間匯總信息,它們分類描述了具體占據的 Code、 RO-data、 RW-data及 ZI-data 的大小,并根據這些大小統計出占據的 ROM 總空間。

Code:指代碼的大小;Ro-data:指除了內聯數據(inline data)之外的常量數據;RW-data:指可讀寫(RW)、已初始化的變量數據;ZI-data:指未初始化(ZI)的變量數據;

提醒:A.Code、Ro-data:位于FLASH中;B.RW-data、ZI-data:位于RAM中;C.RW-data已初始化的數據會存儲在Flash中,上電會從FLASH搬移至RAM。

關系如下:RO Size = Code + RO DataRW Size = RW Data + ZI DataROM Size = Code + RO Data + RW Data

三、map文件的用處

在遇到內存越界,或溢出的情況,可以分析map文件,來查找問題。通過map文件可以知道函數大小,入口地址等一些重要信息。

四、如何生成map文件

上面的紅色方框中可以對各個輸出項打勾,打勾的即可輸出相應的內容。其要表達的含義如下所示:

Memory Map:內存映射Callgraph:圖像映射Symbols:符號Cross Reference:交叉引用Size Info:大小信息Totals Info:統計信息Unused Section Info:未調用模塊信息Veneers Info:裝飾信息

五、如何在keil5打開map文件

可以右擊“Target”,在彈出菜單中點擊 Open Map  File。也可以直接雙擊Target。

隨后就會打開Map文件,如下圖所示:

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關注 33
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 美女视频一区 | 天天操天天碰视频 | 欧美xxxx做受性欧美88 | 久久精品福利 | tube中国91xxxxx国产 | 在公车上拨开内裤进入毛片 | 国产字幕制服中文在线 | 亚洲午夜精品A品久久 | 精品一二区 | 精品少妇XXXX | 狂野欧美性猛交bbbb | 久久国产九九 | 日韩中文字幕免费观看 | 变态视频在线观看 | 亚洲国产精品成人精品无码区在线 | 无码精品每日更新精品久久久 | 亚洲一区二区制服在线 | 国产又色又爽又刺激在线观看 | 国产清纯91天堂在线观看 | 天天舔日日操 | 中文字幕日韩网站免费视频 | 午夜视频在线免费播放 | 爽好久久久欧美精品 | 成人一区二区三区久久精品嫩草 | 精品一区二区三区视频日产 | 人人干干人人 | 中文一二三区 | 三区在线观看 | 区区久久久狼 | 国产成人久久综合777777麻豆 | 国产美女91视频 | 成人性做爰 | 蜜桃精品视频 | 国产成人8x人网站视频 | 亚洲第一黄色网址 | 丁香五月色情婷婷在线观看 | 国产精品亚洲一区二区麻豆 | 国产福利在线不卡免费视频 | 免免费看一级录像片 | 亚洲婷婷六月的婷婷 | 国产欧美日韩综合 |