Keil Logo

About mapping symbols

6.1 About mapping symbols

Mapping symbols are generated by the compiler and assembler to identify inline transitions between code and data at literal pool boundaries, and between ARM code and Thumb code, such as ARM/Thumb interworking veneers.

The mapping symbols are:
$a
Start of a sequence of ARM instructions.
$t
Start of a sequence of Thumb instructions.
$t.x
Start of a sequence of ThumbEE instructions.
$d
Start of a sequence of data items, such as a literal pool.
armlink generates the $d.realdata mapping symbol to communicate to fromelf that the data is from a non-executable section. Therefore, the code and data sizes output by fromelf -z are the same as the output from armlink --info sizes, for example:
      Code (inc. data)   RO Data
         x          y          z
In this example, the y is marked with $d, and RO Data is marked with $d.realdata.

Note

Symbols beginning with the characters $v are mapping symbols related to VFP and might be output when building for a target with VFP. Avoid using symbols beginning with $v in your source code.
Be aware that modifying an executable image with the fromelf --elf --strip=localsymbols command removes all mapping symbols from the image.
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.