beautypg.com

Zilog ZUSBOPTS User Manual

Page 332

background image

Programmer’s Model of ZNEO Memory

UM017105-0511

304

Zilog Developer Studio II – ZNEO™
User Manual

Data in 16-bit addressable memory can be addressed with short pointers and instruc-
tions, so using these spaces for data results in more compact code. However, 16-bit
addresses can access only two 32 KB areas – one in low memory and one in high
memory – so data-intensive applications might also need to use some 32-bit addressed
memory for data.

Program code is always fetched using the 32-bit program counter; therefore there are
no addressing restrictions for program code. Placing as little program code as possible
into the 16-bit addressable (for data) space leaves more memory available in that
space for data.

The ZNEO microcontroller I/O and special function registers are located in the high-
est 8 KB of its 24-bit address space, and extra chip selects are available for external I/O
in the space immediately below internal I/O. Locating I/O functions in the high-mem-
ory 16-bit addressable space allows efficient access to I/O devices.

ZDS II uses five configurable memory ranges to associate a functional purpose to each
part of the target system’s physical memory map. You can configure the address ranges for
each function in the Linker page of the

Project Settings

dialog box (see the

Project Set-

tings—Address Spaces Page

section on page 68). Each address range has a corresponding

mnemonic that is used with the assembly language SPACE keyword. The five address
ranges and their SPACE mnemonics are:

Constant data (ROM).

This range is typically

00_0000H-00_1FFFH

for devices with 32

KB of internal Flash,

00_0000H-00_3FFFH

for devices with 64 KB of internal Flash, and

00_0000H-00_7FFFH

for devices with 128 KB of internal Flash. The lower boundary

must be

00_0000H

. The upper boundary can be lower than

00_7FFFH

, but no higher.

Data in this range is addressable using 16 or 32 bits.

The ROM address range includes the ZNEO CPU option bytes and vector table. The C-
Compiler uses the ROM range for constant data, data tables, and start-up code. The assem-
bly language programmer can place any executable code in the ROM range if desired.

The ROM range typically includes only internal Flash, but can include external nonvola-
tile memory if, for example, internal Flash is disabled.

To use any external memory provided on the target system, you must configure the mem-
ory’s chip select in the Configure Target dialog box. See the

Project Settings—Debugger

Page

section on page 74.

Program space (EROM).

Identifies any 32-bit addressed nonvolatile memory space out-

side the ROM range. This range is typically

00_2000H-00_7FFFH

for devices with 32

KB of internal Flash,

00_4000H-00_FFFFH

for devices with 64 KB of internal Flash, and

00_8000H-01_FFFFH

for devices with 128 KB of internal Flash. Specify a larger range

only if the target system provides external nonvolatile memory.

Note:

This manual is related to the following products: