beautypg.com

Zilog Z8F0130 User Manual

Page 220

background image

Using the ANSI C-Compiler

UM013037-1212

196

Zilog Developer Studio II – Z8 Encore!
User Manual

described in later sections. Any storage specifier used on local and parameter data is
ignored by the compiler.

The data allocation for various storage class specifiers is as follows:

near

A variable declared with the

near

storage specifier is allocated in the 8-bit address-

able RData (near RAM) address space. The address range for these variables is

00-

FF

. The corresponding assembler address space for these variables is RData. You can

set this address range within

00-FF

based on device type and application requirement.

For example:

near int ni; /* ni is placed in RData address space */

far

A variable declared with the

far

storage specifier is allocated in the 12-bit address-

able EData (far RAM) address space. The address range for these variables is

100-

FFF

. The corresponding assembler address space for these variables is EData. You can

set this address range within

100-FFF

based on device type and application require-

ment.

For example:

far int fi; /* fi is placed in EData address space */

In the Z8 Encore! compiler, the peripheral registers (address:

F00-FFF

) are also mapped to

the

far

storage specifier; no separate keyword is provided.


For example:


#define T0CTL0 (*(unsigned char volatile far*)0xF06)

T0CTL0 = 0x12;

rom

A variable declared with the

rom

storage specifier is allocated in the 16-bit address-

able nonvolatile memory. The address range for these variables is

0000-FFFF

. The

lower portion of this address space is used for the Flash option bytes and interrupt vec-
tor table. The corresponding assembler address space for these variables is ROM. You
can set this address range within

0000-FFFF

based on his device type and application

requirement.

For example:

rom int ri; /* ri is placed in ROM address space */

Note: