objdump 如何计算 elf 部分的物理地址 (LMA)?据我所知,elf 节标题仅包含节 [1] 的虚拟地址 (VMA)。
通常,VMA 和 LMA 是相同的。但对于初始化数据段 (.data),VMA 是变量的 RAM 位置,LMA 是初始值所在的 ROM 位置。Crt0 负责在调用 main() 之前将初始值复制到 RAM 中。例如:
$ 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
-汤姆