本期介绍后两种类型。
1.Memory Map of the image
内存(映射)分布;
各部分解析:
1)Image Entry point : 0x08000131:指映射入口地址。
2)Load Region ROM (Base: 0x00008000, Size: 0x00000ec0, Max: 0xffffffff, ABSOLUTE):
指加载区域位于ROM开始地址0x00008000,大小有0x00000ec0,这块区域最大为0xffffffff。
执行区域:
Execution Region ER_RO
Execution Region ER_RM
这个区域,其实就是对应我们目标配置(Project -> Options for Target -> Target)中的配置。
3)Base Addr:存储地址
4)Size:存储大小
5)Type:类型
Data:数据类型
Code:代码类型
Zero:未初始化变量类型
PAD:补充类型。ARM处理器是32位的,如果定义一个8位或者16位变量就会剩余一部分,PAD就是指“补充”的部分。
6)Attr:属性
RO:存储与ROM中的段
RW:存储与RAM中的段
7)Section Name:段名
也可以说为入口分类名,与第1部分“Section Cross References”指的模块、段一样。
大概包含:RESET、.ARM、 .text、 i、 .data、 .bss、 HEAP、 STACK等。
8)Object:目标
2.Image component sizes:存储组成大小。
Image component sizes:是指汇总模块存储大小信息。
各部分解析:
1)Code (inc. Data)
包含两部分,即代码和数据,位于FLASH中。
- code,即程序代码部分,
- inline data. For example, literal pools(文字常量池), and short strings(短字符串)等. 这个一般被忽略。
2)RO Data
指除了内联数据(inline data)之外的常量数据,位于FLASH中。
3)RW Data
指可读写(RW)、已初始化的变量数据,RW-data已初始化的数据会存储在Flash中,上电会从FLASH搬移至RAM中。
4)ZI Data
指未初始化(ZI)的变量数据,位于RAM中。
5)Debug
显示调试数据占用了多少字节,例如调试输入节和符号和字符串表。
关系如下:
RO Size = Code + RO Data
RW Size = RW Data + ZI Data
ROM Size = Code + RO Data + RW Data