Keil™, An ARM® Company

RealView Linker and Utilities Guide

Type 3, two load regions and non contiguous execution regions

3.4.3. Type 3, two load regions and non contiguous execution regions

This type of image is similar to images of type 2 except that the single load region is now split into two load regions (see Figure 3.5).

Figure 3.5. Simple type 3 image

Use the following command for images of this type:

armlink ‑‑split ‑‑ro‑base 0x8000 ‑‑rw‑base 0xE000

Load view

In the load view, the first load region consists of the RO output section, and the second load region consists of the RW output section. The ZI output section does not exist at load time. It is created before execution using the description of the output section contained in the image file.

Execution view

In the execution view, the first execution region contains the RO output section and the second execution region contains the RW and ZI output sections.

The execution address of the RO region is the same as its load address, so the contents of the RO output section do not have to be moved or copied from their load address to their execution address. Both RO and RW are root regions.

The execution address of the RW region is also the same as its load address, so the contents of the RW output section are not moved from their load address to their execution address. However, the ZI output section is created before execution begins and placed after the RW region.

Specify the load and execution address using the following linker options:

‑‑split

Splits the default single load region (that contains both the RO and RW output sections) into two load regions (one containing the RO output section and one containing the RW output section) so that they can be placed separately using ‑‑ro‑base and ‑‑rw‑base.

‑‑ro‑base address

Instructs armlink to set the load and execution address of the region containing the RO section at a four-byte aligned address (for example, the address of the first location in ROM). If you do not use the ‑‑ro‑base option to specify the address, the default value of 0x8000 is used by armlink.

‑‑rw‑base address

Instructs armlink to set the execution address of the region containing the RW output section at a four-byte aligned address. If this option is used with ‑‑split, this specifies both the load and execution addresses of the RW region, for example, it is a root region.

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