Load view and execution view of an image
Image regions are placed in the system memory map at load time. The location of the regions in memory might change during execution.
Before you can execute the image, you might have to move some of its regions to their execution addresses and create the ZI output sections. For example, initialized RW data might have to be copied from its load address in ROM to its execution address in RAM.
The memory map of an image has the following distinct views:
- Load view
Describes each image region and section in terms of the address where it is located when the image is loaded into memory, that is, the location before image execution starts.
- Execution view
Describes each image region and section in terms of the address where it is located during image execution.
The following figure shows these views for an image without an execute-only (XO) section:
Figure 3-2 Load and execution memory maps for an image without an XO section
The following figure shows load and execution views for an image with an XO section:
Figure 3-3 Load and execution memory maps for an image with an XO section
NoteXO memory is supported only for ARMv7-M and ARMv8-M architectures.
The following table compares the load and execution views:
Table 3-1 Comparing load and execution views
|Load address||The address where a section or region is loaded into memory before the image containing it starts executing. The load address of a section or a non-root region can differ from its execution address.||Execution address||The address where a section or region is located while the image containing it is being executed.|
|Load region||A load region describes the layout of a contiguous chunk of memory in load address space.||Execution region||An execution region describes the layout of a contiguous chunk of memory in execution address space.|