objdump如何计算elf节的物理地址(LMA)? 我所知道的是,elf节头仅包含节的虚拟地址(VMA)[1]。
通常,VMA和LMA相同。 但对于已初始化数据节(.data),VMA是变量在RAM中的位置,而LMA是初始值定位在ROM中的位置。 Crt0负责将初始值复制到RAM中,在调用main()之前。例如:
$ objdump -h my.elf
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0003c3d0 00080000 00080000 00010000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
5 .data 000008d0 40000000 000d08d4 00060000 2**3
CONTENTS, ALLOC, LOAD, DATA
-Tom
AT
)提供的。 - ysdx