beautypg.com

Zilog Z8F0130 User Manual

Page 374

background image

Using the Linker/Locator

UM013037-1212

350

Zilog Developer Studio II – Z8 Encore!
User Manual

able. The predefined space

NULL

can also be used to prevent initialization of data while

reserving the segment in the original space using the COPY command.

Examples

Example 1

To make a copy of a data segment in ROM, use the following procedure:

1. In the assembly code, define a data segment (for example,

dataseg

) to be a segment

located in RDATA. This is the run-time location of

dataseg

.

2. Use the following linker command:

COPY dataseg ROM

The linker places the actual contents associated with

dataseg

in ROM (the load time

location) and associates RDATA (the run-time location) addresses with labels in

dataseg

.

You must copy the

dataseg

contents from ROM to RDATA at run time as part of the start-

up routine. You can use the

COPY BASE OF

and

COPY TOP OF

linker expressions to get

the base address and top address of the contents in ROM. You can use the BASE OF and
TOP OF linker expressions to get the base address and top address of

dataseg

.

Example 2

To copy multiple segments to ROM, use the following procedure:

1. In the assembly code, define the segments (for example,

strseg

,

text

, and

dataseg

) to be segments located in RDATA. This is the run-time location of the seg-

ments.

2. Use the following linker commands:

CHANGE strseg=dataseg

CHANGE text=dataseg

COPY dataseg ROM

The linker renames

strseg

and

text

as

dataseg

and performs linking as described

in the previous example. You must write only one loop to perform the copy from
ROM to RDATA at run time, instead of three (one loop each for

strseg

,

text

, and

dataseg

).

Example 3

To allocate a string segment in ROM but not generate the initialization:

Note: