06.02.2013 Views

ARM Compiler toolchain Using the Linker - ARM Information Center

ARM Compiler toolchain Using the Linker - ARM Information Center

ARM Compiler toolchain Using the Linker - ARM Information Center

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Image structure and generation<br />

4.8 Type 3 image, two load regions and non-contiguous execution regions<br />

4.8.1 Load view<br />

RAM<br />

--rw-base<br />

value<br />

--ro-base<br />

value<br />

4.8.2 Execution view<br />

A Type 3 image is similar to a Type 2 image except that <strong>the</strong> single load region is split into two<br />

root load regions.<br />

RW output section<br />

RO output section<br />

Load view<br />

Second<br />

load<br />

region<br />

First<br />

load<br />

region<br />

0xE000<br />

0x8000<br />

0x0000<br />

Use <strong>the</strong> following command for images of this type:<br />

armlink --split --ro_base 0x8000 --rw_base 0xE000<br />

ZI output section<br />

RW output section<br />

RO output section<br />

Execution view<br />

ZI execution<br />

region<br />

RW execution<br />

region<br />

RO execution<br />

region<br />

Figure 4-5 Simple type 3 image<br />

In <strong>the</strong> load view, <strong>the</strong> first load region consists of <strong>the</strong> RO output section, and <strong>the</strong> second load<br />

region consists of <strong>the</strong> RW output section. The ZI output section does not exist at load time. It is<br />

created before execution, using <strong>the</strong> description of <strong>the</strong> output section contained in <strong>the</strong> image file.<br />

In <strong>the</strong> execution view, <strong>the</strong> first execution region contains <strong>the</strong> RO output section, and <strong>the</strong> second<br />

execution region contains <strong>the</strong> RW and ZI output sections.<br />

The execution address of <strong>the</strong> RO region is <strong>the</strong> same as its load address, so <strong>the</strong> contents of <strong>the</strong><br />

RO output section do not have to be moved or copied from <strong>the</strong>ir load address to <strong>the</strong>ir execution<br />

address. Both RO and RW are root regions.<br />

The execution address of <strong>the</strong> RW region is also <strong>the</strong> same as its load address, so <strong>the</strong> contents of<br />

<strong>the</strong> RW output section are not moved from <strong>the</strong>ir load address to <strong>the</strong>ir execution address.<br />

However, <strong>the</strong> ZI output section is created at run-time and is placed contiguously with <strong>the</strong> RW<br />

region.<br />

<strong>ARM</strong> DUI 0474C Copyright © 2010-2011 <strong>ARM</strong>. All rights reserved. 4-15<br />

ID080411 Non-Confidential

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!