Keil Logo

Linker-defined symbols

6.2 Linker-defined symbols

The linker defines some symbols that are reserved by ARM®, and that you can access if required.

Symbols that contain the character sequence $$, and all other external names containing the sequence $$, are names reserved by ARM.
You can import these symbolic addresses and use them as relocatable addresses by your assembly language programs, or refer to them as extern symbols from your C or C++ source code.
Be aware that:
  • If you use the --strict compiler command-line option, the compiler does not accept symbol names containing dollar symbols. To re-enable support, include the --dollar option on the compiler command line.
  • Linker-defined symbols are only generated when your code references them.
  • If execute-only (XO) sections are present, linker-defined symbols are defined with the following constraints:
    • XO linker defined symbols cannot be defined with respect to an empty region or a region that has no XO sections.
    • XO linker defined symbols cannot be defined with respect to a region that contains only RO sections.
    • RO linker defined symbols cannot be defined with respect to a region that contains only XO sections.
Non-ConfidentialPDF file icon PDF versionARM DUI0377H
Copyright © 2007, 2008, 2011, 2012, 2014-2016 ARM. All rights reserved. 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

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.