Keil™, An ARM® Company

RealView Linker and Utilities Guide

About armlink

2.1. About armlink

The linker automatically selects the appropriate standard C or C++ library variants to link with, based on the build attributes of the objects it is linking.

The linker can link ARM code, Thumb® code, and Thumb‑2 code, and automatically generates interworking veneers to switch processor state when required. The linker also generates inline veneers or long branch veneers, where required, to extend the range of branch instructions.

The linker supports command‑line options that enable you to specify the locations of code and data within the system memory map. Alternatively, you can use scatter‑loading description files to specify the memory locations, at both load and execution time, of individual code and data sections in your output image. This enables you to create complex images spanning multiple memories.

The linker supports Read/Write data compression to minimize ROM size.

The linker can perform unused section elimination to reduce the size of your output image. In addition, the linker enables you to:

  • produce debug and reference information about linked files

  • generate a static callgraph and list the stack usage over it

  • control the contents of the symbol table in output images

  • show the sizes of code and data in the output.

The linker can provide feedback, for the next time a file is compiled, to inform the compiler about unused functions. These are placed in their own sections on subsequent compilations for future elimination by the linker.

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0377A