FILE SECTION :该段中列举了所有的.o文件,也就是是你的工程中所有相关的目标文件,即我们常说的模块。
STARTUP SECTION :该段故名思义,是程序开始的地方。
SECTION-ALLOCATION SECTION:段分配区,就是内存中的段分配了。该段下有如下的段:
..init 15 R 0xC000 0xC00E ROM_C000 程序初始化的地方
.startData 10 R 0xC00F 0xC018 ROM_C000 程序开始的地方
. rodata1 712 R 0xC019 0xC2E0 ROM_C000 只读数据存储的地方
NON_BANKED 2152 R 0xC2E1 0xCB48 ROM_C000 //该段是vector table即中断程序代码存储的段。。。该段不会进行memorybanker的优化操作。
.copy 1526 R 0xCB49 0xD13E ROM_C000
.text 6494 R 0xFE8000 0xFE995D PAGE_ FE 代码段
.stack 256 R/W 0x2000 0x20FF RAM 栈空间
. data 1521 R/W 0x2100 0x26F0 RAM 数据段
参考:
夹在ELF头和节头部表之间的都是节(section),各个节的意思如下:
节
含义
.text
已编译程序的机器代码
.rodata
只读数据,如pintf和switch语句中的字符串和常量值
.data
已初始化的全局变量
.bss
未初始化的全局变量
.symtab
符号表,存放在程序中被定义和引用的函数和全局变量的信息
.rel.text
当链接器吧这个目标文件和其他文件结合时,.text节中的信息需修改
.rel.data
被模块定义和引用的任何全局变量的信息
.debug
一个调试符号表。
.line
原始C程序的行号和.text节中机器指令之间的映射
.strtab
一个字符串表,其内容包含.systab和.debug节中的符号表
VECTOR-ALLOCATION SECTION:向量段,即飞思卡尔单片机内部定义的寄存器的分配情况
MODLE: 模块下,列举了模块内部调用的函数名PROCEDURES以及全局变量VARIABLES
OBJECT LIST SORTED BY ADDRESS:该段下面列举了程序使用的各种资源情况
OBJECT-DEPENDENCIES SECTION:列举了每个函数中调用别的函数的情况
DEPENDENCY TREE:描述详细描述了每个函数中个调用结构,以及整个程序的架构框架和流程
最后,还要说明哈,有人问程序下载到单片机中的文件的大小,这里统计段,给出了准确的数据,在你每个工程的,map文件的最后给出: Total size of all blocks to be downloaded: 10921Bytes
*********************************************************************************************
STATISTIC SECTION
---------------------------------------------------------------------------------------------
ExeFile:
--------
Number of blocks to be downloaded: 10
Total size of all blocks to be downloaded: 10921
---------------------
作者:bodogbo11
来源:CSDN
原文:https://blog.csdn.net/bodogbo11/article/details/8295472
版权声明:本文为博主原创文章,转载请附上博文链接!