| |||
| Home > Formal syntax of the scatter file > Execution region attributes | |||
The execution region attributes are:
ABSOLUTEAbsolute address. The execution address of the region is specified by the base designator.
ALIGN alignmentIncrease the alignment constraint for the execution
region from 4 to . alignment must
be a positive power of 2. If the execution region has a alignment then
this must be base_address aligned.
If the execution region has a alignment+ then
the linker aligns the calculated base address of the region to an offset boundary.alignment
ALIGN on an execution region causes both
the load address and execution address to be aligned. This can result
in padding being added to the ELF file. To align only the execution
address, use the AlignExpr expression on the
base address.
ALIGNALL valueIncreases the alignment of sections within the execution region.
The value must be a positive power of 2 and must be greater than or equal to 4.
ANY_SIZE max_sizeSpecifies the maximum size within the execution
region that armlink can fill with unassigned
sections. You can use a simple expression to specify the .
That is, you cannot use functions such as max_sizeImageLimit().
is
not the contingency, but the maximum size permitted for placing
unassigned sections in an execution region. For example, if an execution
region is to be filled only with max_size.ANY sections,
a two percent contingency is still set aside for veneers. This leaves
98% of the region for .ANY section assignements.
Be aware of the following restrictions when using this keyword:
must
be less than or equal to the region sizemax_size
you can use ANY_SIZE on a region
without a .ANY selector but it is ignored by armlink.
EMPTY [-]lengthReserves an empty block of memory of a given in
the execution region, typically used by a heap or stack. No section
can be placed in a region with the sizeEMPTY attribute.
represent
a stack that grows down in memory. If the length is given as a negative
value, the length is
taken to be the end address of the region.base_address
FILL valueCreates a linker generated region containing a .
If you specify valueFILL, you must give a value, for
example: FILL 0xFFFFFFFF. The FILL attribute replaces
the following combination: EMPTY ZEROPAD PADVALUE.
In certain situations, for example, simulation, this is preferable to spending a long time in a zeroing loop.
FIXEDFixed address. The linker attempts to make the execution address equal the load address. This makes the region a root region. If this is not possible the linker produces an error.
The linker inserts padding with this attribute.
NOCOMPRESSRW data compression is enabled by default. The NOCOMPRESS keyword enables
you to specify that RW data in an execution region must not be compressed
in the final image.
OVERLAYUse for sections with overlaying address ranges. If consecutive
execution regions have the same + then
they are given the same base address.offset
PADVALUEDefines the value of any padding. If you specify PADVALUE,
you must give a value, for example:
EXEC 0x10000 PADVALUE 0xFFFFFFFF EMPTY ZEROPAD 0x2000
This creates a region of size 0x2000 full
of 0xFFFFFFFF.
PADVALUE must be a word in size. PADVALUE attributes
on load regions are ignored.
PIThis region contains only position independent sections.
SORTTYPESpecifies the sorting algorithm for the execution region, for example:
ER1 +0 SORTTYPE CallTree
UNINITUse to create execution regions containing uninitialized data or memory-mapped I/O.
ZEROPADZero-initialized sections are written in the ELF file as a block of zeros and, therefore, do not have to be zero-filled at runtime.
This sets the load length of a ZI output section to Image$$.region_name$$ZI$$Length
Only root execution regions can be zero-initialized using
the ZEROPAD attribute. Using the ZEROPAD attribute
with a non root execution region generates a warning and the attribute
is ignored.
In certain situations, for example, simulation, this is preferable to spending a long time in a zeroing loop.