objdump如何计算精灵部分的物理地址(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
Run Code Online (Sandbox Code Playgroud)
-Tom