- 论坛徽章:
- 0
|
如下所示中,对于每个段:
size表示这个section的大小
vma是这个section的运行地址,运行该elf文件时这个section在内存中的位置
lma是这个section的加载地址,具体作用不清楚,貌似不是很重要,load并不是从硬盘或者其他存储设备中加载到内存中,其作用还请知道的兄弟指教
file off从字面上来看时指该section在最后生成的elf文件中的偏移地址,但是看这些section的file off项,貌似也不是这样的。不知道这些值是怎么来的,在哪里控制这个值呢?
algn是对齐的意思,是为了实现字节对齐,但是2**5、2**2、2**0是什么含义呢?
# arm-unknown-linux-gnu-objdump -h /usr/u-boot-1.3.4/u-boot
/usr/u-boot-1.3.4/u-boot: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0001362c 33f80000 33f80000 00008000 2**5
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .rodata 0000078c 33f9362c 33f9362c 0001b62c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .rodata.str1.1 00003c90 33f93db8 33f93db8 0001bdb8 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .data 00000a94 33f97a48 33f97a48 0001fa48 2**2
CONTENTS, ALLOC, LOAD, DATA
4 .u_boot_cmd 00000450 33f984dc 33f984dc 000204dc 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .bss 00004794 33f9892c 33f9892c 0002092c 2**2
ALLOC |
|