beautypg.com

Zilog Z8F0130 User Manual

Page 278

background image

Using the ANSI C-Compiler

UM013037-1212

254

Zilog Developer Studio II – Z8 Encore!
User Manual

COPY NEAR_DATA ROM

COPY FAR_DATA ROM

This COPY command is a linker directive to make the linker place a copy of the initialized
data segments NEAR_DATA and FAR_DATA into the ROM address space. At run time,
the C start-up module then copies the initialized data back from the ROM address space to
the RData (NEAR_DATA segment) and EData (FAR_DATA segment) address spaces.
This is the standard method to ensure that variables get their required initialization from a
nonvolatile stored copy in a typical embedded application in which there is no offline
memory such as disk storage from which initialized variables can be loaded.


define _low_near_romdata = copy base of NEAR_DATA

define _low_neardata = base of NEAR_DATA

define _len_neardata = length of NEAR_DATA

define _low_far_romdata = copy base of FAR_DATA

define _low_fardata = base of FAR_DATA

define _len_fardata = length of FAR_DATA

define _low_pram_romdata = copy base of PRAMSEG

define _low_pramseg = base of PRAMSEG

define _len_pramseg = length of PRAMSEG

define _low_nearbss = base of NEAR_BSS

define _len_nearbss = length of NEAR_BSS

define _low_farbss = base of FAR_BSS

define _len_farbss = length of FAR_BSS

define _far_heapbot = top of EData

define _far_heaptop = highaddr of EData

define _far_stack = highaddr of EData

define _near_heapbot = top of RData

define _near_heaptop = highaddr of RData

define _near_stack = highaddr of RData

These are the linker symbol definitions described in Table 51. They allow the compiler to
know the bounds of the different memory areas that must be initialized in different ways
by the C start-up module.


"c:\sample\test"= \

C:\PROGRA~1\Zilog\ZD3E4C~1.0\lib\startupl.obj, \

.\foo.obj, \

C:\PROGRA~1\Zilog\ZD3E4C~1.0\lib\chelpd.lib, \

C:\PROGRA~1\Zilog\ZD3E4C~1.0\lib\crtldd.lib, \

C:\PROGRA~1\Zilog\ZD3E4C~1.0\lib\fpldd.lib, \

C:\PROGRA~1\Zilog\ZD3E4C~1.0\zilog\csioldd.lib

This final command shows that, in this example, the linker output file is named

test.lod

. The source object file (

foo.obj

) is to be linked with the other modules that