English
Language : 

NS32FX16-15 Datasheet, PDF (11/88 Pages) National Semiconductor (TI) – Imaging/Signal Processor
2 0 Architectural Description (Continued)
Address (Hex)
00000000
Memory and I O
00FFFE00
01000000
FF800000
FFFFD000
FFFFD200
FFFFD4XX
Interrupt Control
Address Not Available Off-Chip
(Do Not Use)
Reserved
On-Chip RAM Array
Reserved
DSP Module
FFFFFFFF
Reserved
FIGURE 2-9 NS32FX16 Address Mapping
2 3 MODULAR SOFTWARE SUPPORT
The NS32FX16 provides special support for software mod-
ules and modular programs
Each module in a NS32FX16 software environment consists
of three components
1 Program Code Segment
This segment contains the module’s code and constant
data
2 Static Data Segment
Used to store variables and data that may be accessed
by all procedures within the module
3 Link Table
This component contains two types of entries Absolute
Addresses and Procedure Descriptors
An Absolute Address is used in the external addressing
mode in conjunction with a displacement and the current
MOD Register contents to compute the effective address
of an external variable belonging to another module
The Procedure Descriptor is used in the call external pro-
cedure (CXP) instruction to compute the address of an
external procedure
Normally the linker program specifies the locations of the
three components The Static Data and Link Table typically
reside in RAM the code component can be either in RAM or
in ROM The three components can be mapped into non-
contiguous locations in memory and each can be indepen-
dently relocated Since the Link Table contains the absolute
addresses of external variables the linker need not assign
absolute memory addresses for these in the module itself
they may be assigned at load time
To handle the transfer of control from one module to anoth-
er the NS32FX16 uses a module table in memory and two
registers in the CPU
The Module Table is located within the first 64 kbytes of
memory This table contains a Module Descriptor (also
called a Module Table Entry) for each module in the ad-
dress space of the program A Module Descriptor has four
32-bit entries corresponding to each component of a mod-
ule
 The Static Base entry contains the address of the begin-
ning of the module’s static data segment
 The Link Table Base points to the beginning of the mod-
ule’s Link Table
 The Program Base is the address of the beginning of the
code and constant data for the module
 A fourth entry is currently unused but reserved
The MOD Register in the CPU contains the address of the
Module Descriptor for the currently executing module
The Static Base Register (SB) contains a copy of the Static
Base entry in the Module Descriptor of the currently execut-
ing module i e it points to the beginning of the current
module’s static data area
This register is implemented in the CPU for efficiency pur-
poses By having a copy of the static base entry or chip the
CPU can avoid reading it from memory each time a data
item in the static data segment is accessed
In an NS32FX16 software environment modules need not
be linked together prior to loading As modules are loaded
a linking loader simply updates the Module Table and fills
the Link Table entries with the appropriate values No modi-
fication of a module’s code is required Thus modules may
be stored in read-only memory and may be added to a sys-
tem independently of each other without regard to their in-
dividual addressing Figure 2-10 shows a typical NS32FX16
run-time environment
11