BIN 文件对 section 指令的扩展

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

AttributeIndicates 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值