Linker command files for c programs, Table 15, Segments – Zilog Z8F0130 User Manual
Page 271: Tails, see the, 247 an
UM013037-1212
Linker Command Files for C Programs
Zilog Developer Studio II – Z8 Encore!
User Manual
247
Linker Command Files for C Programs
This section describes how the Z8 Encore! linker is used to link a C program. To learn
more about the linker and the various commands it supports, see the
section on page 345. A C program consists of compiled and assembled object
module files, compiler libraries, user-created libraries, and special object module files
used for C run-time initializations. These files are linked based on the commands given in
the linker command file. Because the linker command file coordinates the actions of the
compiler and linker, it is appropriate to discuss this topic in this section.
The default linker command file is automatically generated by the ZDS II IDE whenever a
build
command is issued. It has information about the ranges of various address spaces
for the selected device, the assignment of segments to spaces, order of linking, and so on.
The default linker command file can be overridden by the user.
The linker processes the object modules (in the order in which they are specified in the
linker command file), resolves the external references between the modules, and then
locates the segments into the appropriate address spaces as per the linker command file.
The linker depicts the memory of the Z8 Encore! CPU using a hierarchical memory model
containing spaces and segments. Each memory region of the CPU is associated with a
space. Multiple segments can belong to a given space. Each space has a range associated
with it that identifies valid addresses for that space. The hierarchical memory model for
the Z8 Encore! CPU is shown in Figure 139. Figure 140 depicts how the linker links and
locates segments in different object modules.
Table 49. Segments
Segment
Description
NEAR_DATA
near initialized global and static data
NEAR_BSS
near uninitialized global and static data
NEAR_TEXT
near constant strings
FAR_DATA
far initialized global and static data
FAR_BSS
far uninitialized global and static data
FAR_TEXT
far constant strings
ROM_DATA
ROM global and static data
ROM_TEXT
ROM constant strings
PRAMSEG
Program ram code
fname_TEXT
ROM code for file fname (fname is translated in some cases)
__VECTORS_nnn
ROM interrupt vector at address nnn
STARTUP
ROM C startup
- Z8F0131 Z8F0230 Z8F0231 Z8F0430 Z8F0431 Z8F043A Z8F0830 Z8F0831 Z8F083A Z8F1232 Z8F1233 Z8F0113 Z8F011A Z8F0123 Z8F012A Z8F0213 Z8F021A Z8F0223 Z8F022A Z8F0411 Z8F0412 Z8F0413 Z8F041A Z8F0421 Z8F0422 Z8F0423 Z8F042A Z8F0811 Z8F0812 Z8F0813 Z8F081A Z8F0821 Z8F0822 Z8F0823 Z8F082A Z8F0880 Z8F1621 Z8F1622 Z8F1680 Z8F1681 Z8F1682 Z8F2421 Z8F2422 Z8F2480 Z8F3221 Z8F3222 Z8F3281 Z8F3282 Z8F4821 Z8F4822 Z8F4823 Z8F6081 Z8F6082 Z8F6421 Z8F6422 Z8F6423 Z8F6481 Z8F6482 Z8FS021A ZMOT1AHH Z8FS040B ZMOT0BHH ZMOT0BSB Z8FMC04 Z8FMC08 Z8FMC16