objdump如何计算elf段的物理地址(LMA)?据我所知,精灵节头只包含节[1]的虚拟地址(VMA)。elf文件中段的虚拟地址和物理地址
通常,VMA和LMA是相同的。但对于初始化数据段(.data),VMA是变量的RAM位置,LMA是初始值所在的ROM位置。在main()被调用之前,Crt0负责将初始值复制到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
- 汤姆
[1] http://www.ouah.org/RevEng/x430.htm
我不知道关于这个主题的anython,但它似乎LMA是由[链接器脚本](https://sourceware.org/binutils/docs-2.18/ld/Output-Section-LMA.html)给出的(使用'AT')。 – ysdx 2015-08-20 21:27:51