4394|0

227

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

IAR 开发环境下的.map文件解析 [复制链接]

map文件(内存映射文件)在日常项目开发中有些工程师可能不太关注它,但是等你了解了map文件,会让你在开发和调试的过程中事半功倍为了具体化问题,这里以IAR EWARMSTM32F107为例来深入地分析一个map文件。

首先,要在工程设置选项中勾选生成map文件,默认设置是不生成map文件的,我们需要手动设置一下。如下图:

之后每次编译会在在“工程目录\Debug\Lis”文件夹下找到以工程名命名的.map文件。IAR编辑器中打开它(也可以用记事本或者Notepad++等文件编辑器直接打开)。

另外,也可以在workspaceOutput虚拟目录下双击显示的map文件,会自动在IAR编辑器中打开map文件。

map文件主要由以下几部分构成:

  1. 文件头中显示链接器版本,输出文件名,MAP 文件名以及链接器命令行等。
  2. RUNTIME MODEL ATTRIBUTES  显示 Endian等属性;
  3. PLACEMENT SUMMARY  显示各sections 在存储器中的分布;
  4. INIT TABLE  显示与初始化有关的section tables
  5. MODULE SUMMARY  显示所有被链接的文件信息,包括目标文件和库文件等;
  6. ENTRY LIST  给出了所有函数的入口地址及其所在的目标文件。
  7. 文件尾中显示了总的代码和数据字节数(想看下最后目标代码占用多少Flash和多少RAM的可以从这里查到)。

下面介绍调试的时候常常会用到的几个部分。

  1. PLACEMENT SUMMARY,该部分主要显示代码和数据在芯片内部的存储器映射地址。可能会有人疑问为什么会分配到这些地址的呢,其实这些地址分配都是在Linker文件(*.icf文件)里定义好的,IAR根据所选目标芯片就按照该定义的地址进行链接,然后烧写进Flash,具体的地址空间的定义可以查看icf文件说明了解详细内容。

  1. ENTRY LIST,开发工程内所有函数的入口地址。这部分很有用,通过该地址映射再结合调试的时候观察内存空间,可以了解整个程序的执行状况。

3MODULE SUMMARY主要概述被链接文件所占ro代码大小、rw数据大小。

  1. 这是map文件末尾部分,最后给出了整个工程文件占用的资源情况,即芯片内部FlashRAM的使用情况,便于你对工程开发规模上的掌握,最后给出工程编译链接输出信息


此内容由EEWORLD论坛网友MamoYU原创,如需转载或用于商业用途需征得作者同意并注明出处

点赞 关注
个人签名

欢迎关注“麦克泰技术”

 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表