1. MAP文件是什么?有什么作用?
MAP文件是 MDK编译代码后,产生的集程序、数据及IO空间的一种映射列表文件。简单来说就是包括了:各种.c
文件、函数、符号等的地址、大小、引用关系等信息。
作用: 用于分析各.c
文件占用FLASH和RAM的大小,方便优化代码。
map文件由以下五大部分内容组成:
- 1.模块、段(入口)交叉引用:描述各文件之间函数调用关系
- 2.删除映像未使用的程序段:描述工程中未用到而被删除的冗余程序段
- 3.映射符号表:描述各符号(程序段、数据)在存储中的地址、类型、大小等
- 4.内存(映射)分布:描述各程序段(函数)在存储器中的地址及占用大小
- 5.映射组件大小:给出整个映像代码(.o)占用空间汇总信息
2. MDK配置
程序瘦身(会删除冗余程序段):
3 MAP文件相关的一些基本
段(section):描述映像文件的代码和数据块
RO:Read-Only的缩写,包括RO-data(只读数据)和RO-code(代码)
RW:Read-Write的缩写,主要是RW-data,RW-data由程序初始化初始值
ZI:Zero-initialized的缩写,主要是ZI-data,由编译器初始化为0。
.text:与RO-code同义
.constdata:与RO-data同义
.bss:与ZI-data同义
.data:与RW-data同义
其他详细内容参考这篇博客MAP文件浅析