10.1. Linker Overview

The Arm linker allows you to allocate output sections efficiently in the memory map. As the linker combines object files, it performs the following tasks:

  • Allocates sections into the target system’s configured memory

  • Relocates symbols and sections to assign them to final addresses

  • Resolves undefined external references between input files

The linker command language controls memory configuration, output section definition, and address binding. The language supports expression assignment and evaluation. You configure system memory by defining and creating a memory model that you design. Two powerful directives, MEMORY and SECTIONS, allow you to:

  • Allocate sections into specific areas of memory

  • Combine object file sections

  • Define or redefine global symbols at link time