ARM映像文件的组成:
一个映像文件由一个或多个域(region,也有译为“区”)组成
每个域包含一个或多个输出段(section,也有译为“节”)
每个输出段包含一个或多个输入段
各个输入段包含了目标文件中的代码和数据
输入段中包含了四类内容:代码、已经初始化的数据、未经过初始化的存储区域、内容初始化为零的存储区域。
每个输入段有相应的属性:只读的(RO)、可读写的(RW)以及初始化成零的(ZI)。
到这里我们就可以知道,一般情况下,代码会被放到RO属性的输入节,
已经初始化的变量会被分配到RW属性输入区,而“ZI”属性输入节可以理解为是初始化成零变量的集合。
Total RO Size (Code + RO Data) 54520 ( 53.24kB)
Total RW Size (RW Data + ZI Data) 6088 ( 5.95kB)
Total ROM Size (Code + RO Data + RW Data) 54696 ( 53.41kB)
对于一个变量,它可能有三种属性:
1、用const修饰符修饰的变量最可能放在RO属性区。
2、已经初始化的变量会放在RW属性区。
3、那么剩下的变量就要放到ZI属性区了。