程序的源码如下:
输出的Image Symbol Table内容如下:
Global Symbols
Symbol Name Value Ov Type Size Object(Section)
BuildAttributes$$ARM_ISAv4$M$PE$A:L22$X:L11$S22$~IW$~STKCKD$~SHL$OSPACE 0x00000000 Number 0 anon$$obj.o ABSOLUTE
Image$$RO$$Base 0x00000000 Number 0 anon$$obj.o ABSOLUTE
Image$$RO$$Limit 0x00000024 Number 0 anon$$obj.o ABSOLUTE
Image$$RW$$Base 0x00000024 Number 0 anon$$obj.o ABSOLUTE
Image$$ZI$$Base 0x0000002c Number 0 anon$$obj.o ABSOLUTE
Image$$ZI$$Limit 0x0000002c Number 0 anon$$obj.o ABSOLUTE
各部分的大小:
Code RO Data RW Data ZI Data Debug
36 0 8 0 236 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 36 ( 0.04kB)
Total RW Size(RW Data + ZI Data) 8 ( 0.01kB)
Total ROM Size(Code + RO Data + RW Data) 44 ( 0.04kB)
================================================================================
image中的分布为
ZI
RW
RO
RO base = 0
RO limit = RO base + RO size + 1 = 0 + 0x24 - 1 + 1 = 0x24(RO部分后面一个字节的地址)
RW base = RO limit
ZI base = RW base + RW size = 0x24 + 8 - 1 + 1 = 0x2c
由于没有ZI,所以ZI limit = ZI base
这个工程似乎一切都与预料符合,但boot270工程好像不符合???