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、映像組件大小(Image 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
關注 44
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 国产第一页福利影院 | 成人精品视频网站 | 欧美激情精品久久 | 一本加勒比波多野结衣高清 | 欧美日韩精品一区二区三区高清视频 | 在线成人一区 | 国产青草| 国产又黄又爽胸又大免费视频 | 久久亚洲美女精品国产精品 | yy6080午夜八戒国产亚洲 | 在线观看免费网页欧美成 | 人人爽人人爽人人爽人人片av | 99re免费视频精品全部 | xxxx精品| 精品日本一区二区三区免费 | 亚州黄色一级 | 深夜看国产毛片在线视频香蕉 | 秋霞影视一区二区三区 | 亚洲国产成人精品无码区在线网站 | 99re8这里有精品热视频8在线 | 人人摸人人操 | 穿透明白衬衫喷奶水的av | 国产精品无码dvd在线观看 | 欧美男同gay做受gay网站 | 风韵丰满熟妇啪啪区老老熟女百度 | 西西人体午夜大胆无码视频 | 中文字幕一区二区日韩精品绯色 | 操的很爽| ASSFREE疯狂老妇熟女 | 日本丰满熟妇VIDEOS | 亚洲国产精品无码专区影院 | 成年人黄色影院 | 亚洲在线免费视频 | 日韩精品区一区二区三vr | 国产一区在线看 | 福利国产 | 国产精品久久久久7777婷婷 | 日本无码色哟哟婷婷最新网站 | 777片理伦片在线观看 | 四虎影视在线影院在线观看 | 久久久乱码精品亚洲日韩 |