Sorry, your browser is not supported. We recommend upgrading your browser.
We have done our best to make all the documentation and resources available on old versions of Internet Explorer, but vector image support and the layout may not be optimal. Technical documentation is available as a PDF Download.
About the scatter-loading description syntax
In a scatter file, each region is defined by a header tag that contains, as a minimum, a name for the region and a start address. Optionally, you can add a maximum length and various attributes.
A root region is an execution region with an execution address that is the same as its load address. A scatter file must have at least one root region.
Placing the stack and heap
The scatter-loading mechanism provides a method for specifying the placement of the stack and heap in your image.
Reset and initialization
The entry point to the C library initialization routine is __main. However, an embedded application on your target hardware performs some system-level initialization at startup.
The vector table
All ARM systems have a vector table. It does not form part of the initialization sequence, but it must be present for an exception to be serviced.
ROM and RAM remapping
You must consider what sort of memory your system has at address 0, the address of the first instruction executed.
Local memory setup considerations
Many ARM processors have on-chip memory management systems, such as MMUs or MPUs. These devices are normally set up and enabled during system startup.
Stack pointer initialization
As a minimum, your reset handler must assign initial values to the stack pointers of any execution modes that are used by your application.
In general, it is beneficial to separate all system initialization code from the main application. However, some components of system initialization, for example, enabling of caches and interrupts, must occur after executing C library initialization code.
Execution mode considerations
You must consider the mode in which the main application is to run. Your choice affects how you implement system initialization.
Target hardware and the memory map
It is better to keep all information about the memory map of a target, including the location of target hardware peripherals and the stack and heap limits, in your scatter file, rather than hard-coded in source or header files.
Execute-only memory (XOM) allows only instruction fetches. Read and write accesses are not allowed.