map文件包括Segment、Modules、Stack Usage、Symbols这4部分。 1、Segment 描述了组成应用的各个段,包括开始地址(16进制)、结束地址(16进制)、长度(10进制)、段名。注意,结束地址是段的最后一个字节的下一个字节的地址。如果此段已经初始化,它会显示2次,第一次显示开始、结束、长度、段名信息,第二次显示映像拷贝。
2、Modules 列出所有组成应用的所有模块,对某一个模块的描述与segment相同。
3、Stack Usage 描述Stack需要的内存总数。第一行为每个文件的objcet文件,下面罗列文件中的函数。函数后面如果跟着一个’>’,说明此函数没有被其它函数调用。第一个数字是此函数需要使用的Stack空间,包括内部调用;包含在小括号内的第二个数字是此函数单独需要使用的stack空间。如:
函数f_I2C1_IRQHandler是中断处理函数,不被其它函数调用,内部总共需要占用37bytes的stack空间,如果单独使用,占用12bytes的stack空间。 4、Call Tree 列出所有的函数调用信息。 5、Symbols 列出应用中定义的所有符号,包括名字、值、定义的位置及使用的模块。
|