STM32 Keil生成的map文件分析

一、map文件生成设置:

选项说明表:

选项释义简要说明
Memory Map内存映射内存映射分布信息
Callgraph图像映射函数调用的堆栈使用以及子函数调用信息
Symbols映射符号表模块.o文件对应映射地址
Cross Reference交叉引用关系模块之间相互引用的关系
Size Info组成大小信息

Object Name、Library Member Name、Library Name生成的.o文件占用的

Code、RO Data、RW Data、ZI Data、Debug详细空间信息

Totals Info统计信息

1、Object Totals、Library Totals 以及两者之和

2、Total RO Size 、Total RW Size 、Total ROM Size

3、ELF文件的大小和存放在ROM里面占用的大小

Unuaed Sections Info未调用模块信息编译了源文件但未使用的模块
Veneers Info装饰信息 

 

二、map文件中的基础概念

section描述映像文件的代码和数据块
Thumb Code指令集代码
RORead-Only的缩写,包括RO-data(只读数据域)和Code(代码域)
RWRead-Write的缩写,主要是RW-data,Rw-data由程序初始化初始值。
ZIZero-initialized的缩写,主要是ZI-data,由编程器初始化为0。
.constdata常量数据段。RO Data,例如const关键字定义的变量
.text即Code
.data即ZI-data初始化为“0 值”的可读写数据域或者未初始化的变量
.bss即RW-data,初始化为“非 0 值”的可读写数据

 

三、map文件组成分析

1、map文件组成表:

 组成模块名称释义简要说明对应勾选
1Section Cross References模块、段的交叉引用关系各个源文件生成的模块之间相互引用的关系Cross Reference
2Removing Unused input sections from the image移除未使用的模块移除编译了但未使用的模块Unuaed Sections Info
3Image Symbol Table映射符号表各个模块所存储的对应地址Symbols
4Memory Map of the image映像的内存分布

映像文件可以分为加载域(Load Region)和

运行域(Execution Region)

Memory Map
5Image component sizes映像存储组成大小Code、RO Data、RW Data、ZI Data、Debug等数据组成Size Info

 

2、组成详细分析

(1)Section Cross References

各个源文件 .c 生成的 .o 模块之间相互引用的关系。

如图,main 模块调用了 delay 模块的 delay_init 函数。

 

(2)Removing Unused input sections from the image

移除编译了但未使用的模块。

 

(3)Image Symbol Table

映射符号表。

Symbol NameValueOv TypeSizeObject(Section)
符号名称存储对应的地址符号对应的类型存储大小模块(源文件)名

1> Local Symbols 用static声明的函数和变量地址和大小 

2> Global Symbols 全局变量和函数的地址和大小

 

(4)Memory Map of the image

映像的内存分布

1> 程序ROM加载空间:

Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000135c, Max: 0x00040000, ABSOLUTE)

2> 程序ROM执行空间:

Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00001328, Max: 0x00040000, ABSOLUTE)

执行空间的 ROM 比较小的原因就是因为部分 RW-data 类型的变量被拷贝到 RAM 空间了。

3> 后面的为地址分布列表

Exec AddrLoad AddrSizeTypeAttrSection NameObjecj
运行域地址加载域地址存储大小类型权限入口分类名目标

 

(5)Image component sizes

映像存储组成大小。详细释义参考:https://blog.csdn.net/p1279030826/article/details/103180034

Grand Totals:映像的真实大小。

ELF Image Totals:ELF可执行链接格式映像文件大小。

ROM Totals:包含映像所需的 ROM的最小大小。不包括ZI数据和存储在ROM 中的调试信息。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值