Program configurations, Default program configuration, Section on – Zilog ZUSBOPTS User Manual
Page 336: More information, see the

Program Configurations
UM017105-0511
308
Zilog Developer Studio II – ZNEO™
User Manual
•
The ZDS II GUI assumes external I/O is located in the range
FF_C000H
to
FF_DFFFH
.
Any external I/O that is located elsewhere can be accessed using absolute addresses.
The debugger memory window displays all addresses below
FF_C000H
as part of the
Memory space, however.
Program Configurations
With the information given so far in this chapter as background, you are now ready to plan
the memory configuration for your own application. At this point, you should have deter-
mined what external memory, if any, is present on your target system, enabled and config-
ured its chip selects, and added its address space to the linker address ranges. For
information about these settings, see the
Project Settings—Debugger Page
Project Settings—Address Spaces Page
Now it is necessary to implement your program’s memory configuration using the devel-
opment environment and tools. This section presents several examples of this process,
beginning with the default program configuration provided by the Zilog development
tools. For each configuration, there is a discussion of reasons to choose the configuration
and how to implement the configuration in both C and assembly language projects.
Two distinct features of a program configuration are how its code is downloaded and how
its initial values are copied. Downloading refers to what the development tools do when
they copy your compiled or assembled code and data from your host computer to the
ZNEO CPU’s internal or external memory in preparation for a debugging or test session.
The memory space (ZDS II address range) or spaces into which your program is down-
loaded depend on the memory model that best fits your application. You might also choose
to change those spaces as your application evolves from the early stages of development
closer to production.
The copying of initial values, on the other hand, is carried out by the start-up code in your
application. Usually, the start-up code copies values from nonvolatile memory to a loca-
tion in volatile memory where they are accessed in the main body of your program. In
addition to copying data that must have a specific value on program startup, the start-up
code can also set otherwise uninitialized values to zero (to conform with the C standard).
Unlike the downloading step, the copying step continues to occur in your production code,
typically when the end-user device is powered up or reset.
Default Program Configuration
The default program configuration provided by ZNEO development tools can be used for
production code as well as development. It is designed to provide a general case that meets
the needs of many users. In this configuration, your compiled or assembled program is all
downloaded to the ROM or EROM functional address spaces; see Figure 132.