本期介绍后两种类型 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