You copied the Doc URL to your clipboard.

Type 2 image, one load region and non-contiguous execution regions

An image of this type consists of a single load region in the load view and three execution regions in the execution view. It is similar to images of type 1 except that the RW execution region is not contiguous with the RO execution region.

--ro_base=address1 specifies the load and execution address of the region containing the RO output section. --rw_base=address2 specifies the execution address for the RW execution region.

The following example shows the scatter-loading description equivalent to using --ro_base=0x010000 --rw_base=0x040000:

LR_1 0x010000        ; Defines the load region name as LR_1
    ER_RO +0         ; The first execution region is called ER_RO and starts at end of previous region.
                     ; Because there is no previous region, the address is 0x010000.
        * (+RO)      ; All RO sections are placed consecutively into this region.
    ER_RW 0x040000   ; Second execution region is called ER_RW and starts at 0x040000.
        * (+RW)      ; All RW sections are placed consecutively into this region.
    ER_ZI +0         ; The last execution region is called ER_ZI.
                     ; The address is 0x040000 + size of ER_RW region.
        * (+ZI)      ; All ZI sections are placed consecutively here.

In this example:

  • This description creates an image with one load region, named LR_1, with a load address of 0x010000.

  • The image has three execution regions, named ER_RO, ER_RW, and ER_ZI, that contain the RO, RW, and ZI output sections respectively. The RO region is a root region. The execution address of ER_RO is 0x010000.

  • The ER_RW execution region is not contiguous with ER_RO. Its execution address is 0x040000.

  • The ER_ZI execution region is placed immediately following the end of the preceding execution region, ER_RW.