C6.2.5 Placing __at sections at a specific address
You can give a section a special name that encodes the address where it must be placed.
To place a section at a specific address, use the function or variable
attribute __attribute__((section("name"))) with the
special name .ARM.__at_address.
To place ZI data at a specific address, use the variable
attribute __attribute__((section("name"))) with the special name .bss.ARM.__at_address
address
is the required address of the section. The compiler normalizes this address to eight
hexadecimal digits. You can specify the address in hexadecimal or decimal. Sections in the
form of .ARM.__at_address are referred to by the abbreviation __at.
The following example shows how to assign a variable to a specific
address in C or C++ code:
// place variable1 in a section called .ARM.__at_0x8000
int variable1 __attribute__((section(".ARM.__at_0x8000"))) = 10;
Note:
The name of the section is only
significant if you are trying to match the section by name in a scatter file. Without
overlays, the linker automatically assigns __at sections
when you use the --autoat command-line option. This option
is the default. If you are using overlays, then you cannot use --autoat to place __at sections.
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.