BIN 文件对 section 指令的扩展

原文链接: https://my.oschina.net/abcijkxyz/blog/788724

1. 基本概念

1) LMA: Load Address

2) VMA: Virtual Address

3) 实例 

int a __attribute__((section(".section AA, \"aw\", @nobits")));
int b __attribute__((section(".section BB, \"aw\", @progbits")));
int c __attribute__((section(".section CC, \"ax\", @progbits")));

a: section is allocatable
w: section is writable
x: section is executable


2. SECTION属性

bin Section Attributes

Attribute Indicates the section

progbits

is stored in the disk image, as opposed to allocated and initialized at load.

nobits

is allocated and initialized at load (the opposite of progbits). Only one of progbits or nobits may be specified; they are mutually exclusive attributes.

start=address

has an LMA starting at address. If a LMA alignment constraint is given, it is checked against the provided address and a warning is issued if address does not meet the alignment constraint.

follows=sectname

should follow the section named sectname in the output file (LMA). If a LMA alignment constraint is given, it is respected and a gap is inserted such that the section meets its alignment requirement. Note that as LMA overlap is not allowed, typically only one section may follow another.

align=n

requires a LMA alignment of n bytes. The value n must always be a power of 2. LMA alignment defaults to 4 if not specified.

vstart=address

has an VMA starting at address. If a VMA alignment constraint is given, it is checked against the provided address and a warning is issued if address does not meet the alignment constraint.

vfollows=sectname

should follow the section named sectname in the output file (VMA). If a VMA alignment constraint is given, it is respected and a gap is inserted such that the section meets its alignment requirement. VMA overlap is allowed, so more than one section may follow another (possibly useful in the case of overlays).

valign=n

requires a VMA alignment of n bytes. The value n must always be a power of 2. VMA alignment defaults to the LMA alignment if not specified.




转载于:https://my.oschina.net/abcijkxyz/blog/788724

你可能感兴趣的:(BIN 文件对 section 指令的扩展)