【发布时间】:2011-09-07 06:49:26
【问题描述】:
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
-汤姆
【问题讨论】:
-
我对这个话题一无所知,但似乎 LMA 是由linker script 给出的(使用
AT)。