Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39046
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-03 14:41
个人简介

路漫漫其修远兮,吾将上下而求索

文章分类

全部博文(31)

文章存档

2015年(31)

我的朋友

分类: C/C++

2015-07-01 14:14:29

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的可以从这里查到)。
 


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



ENTRY LIST,开发工程内所有函数的入口地址,个人觉着这部分很有用,通过该地址映射再结合调试的 时候观察内存空间可以方便整个工程执行情况,让你了若指掌,而且也方便你解读一个陌生程序的功能(例如参考别人的例程,网上的例程之类的),总之个人觉着 这个部分用处很大,有心人可以在此处做很大文章。


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

堆的地址
阅读(815) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~