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.