本文引用地址:https://www.eepw.com.cn/article/201611/322727.htmLoad Region LR_IROM1 (Base: 0x08000000, Size: 0x00002e00, Max: 0x00020000, ABSOLUTE)
//程序的加载映像地址和长度,2e00=2dc0(代码和常数)+0x20(Region Table是RW的加载和执行地址、ZI与HEAPSTACK的执行地址)+0x20(已经初始化的数据)。
Execution Region ER_IROM1(Base: 0x08000000, Size: 0x00002de0, Max: 0x00020000, ABSOLUTE)//这段RO区域的加载映像和执行映像一致。
Base AddrSizeTypeAttrIdxE Section NameObject
0x08000000 0x000000ecDataRO3RESETstm32f10x.o
0x080000ec 0x00000008CodeRO191* !!!main__main.o(c_w.l)
Execution Region RW_IRAM1 (Base: 0x20000000, Size: 0x000004a0, Max: 0x00005000, ABSOLUTE)//RW数据区ZI数据区Heap和Stack数据区。
Base AddrSizeTypeAttrIdxE Section NameObject
0x200000000x00000001DataRW100.datatft018.o
x200000400x00000060ZeroRW212.bsslibspace.o(c_w.l)
0x200000a00x00000000ZeroRW2HEAPstm32f10x.o
0x200000a00x00000400ZeroRW1STACKstm32f10x.o
6、第六部分:Image component sizes
这是指出各个模块的输入节的大小
Code (inc. data)RO DataRW DataZI DataDebugObject Name
97258010322416can.o
82416801501791candemo.o
928880004529stm32_init.o
5218236010242700stm32f10x.o
1836324874108076tft018.o
最后给出总长度:这个11744应该=0x2dc0,1184应该0x4a0。11776应该是=0x2e00。
Total ROSize (Code + RO Data)11744 (11.47kB)
Total RWSize (RW Data + ZI Data)1184 (1.16kB)
Total ROM Size (Code + RO Data + RW Data)11776 (11.50kB)
二、总结
感觉经过这么分析一遍,对于嵌入式系统程序的静态结构和动态执行流程的了解又深入了一些,当然也还是有些问题并没有了解透彻:留待以后慢慢解决吧。
评论