Data Sheet
June 2001
DSP16410B Digital Signal Processor
228
Agere Systems—Proprietary
Use pursuant to Company instructions
Agere Systems Inc.
6 Software Architecture
(continued)
6.2 Registers
(continued)
6.2.2 Memory-Mapped Registers
The memory-mapped registers located in their associated peripherals are each mapped to an even address. The
sizes of these registers are 16 bits, 20 bits, or 32 bits. A register that is 20 bits or 32 bits must be accessed as an
aligned double word. A register that is 16 bits can be accessed as a single word with an even address or as an
aligned double word with the same even address. If a register that is 16 bits or 20 bits is accessed as a double
word, the contents of the register are right-justified. Memory-mapped registers have the same internal format as
other registers and are different from memory.
Figure 59
illustrates three memory-mapped registers.
Figure 59. Example Memory-Mapped Registers
Note:
Accessing memory-mapped registers with an odd address yields undefined results. The memory-mapped
registers are defined by name and equated to their even memory addresses in the include file that is pro-
vided with the LUxWORKS tools,
16410_mmregs.h
. To differentiate the memory-mapped registers for SIU0
and SIU1,
16410_mmregs.h
appends the suffix
_U0
or
_U1
to the register name. For example,
16410_mmregs.h
defines
SCON0_U0
as the address for the SIU0
SCON0
register and
FSTAT_U1
as the
address for the SIU1
FSTAT
register.
Memory-mapped registers are designated with upper-case bold. For example, the 32-bit DMAU status register
DSTAT
is mapped to address 0x4206C. The code segment example below accesses
DSTAT
:
r0 = 0x4206C
nop
a0 = *r0
// Address of DSTAT.
// Copy the contents of DSTAT to a0.
Alternatively:
#include "16410_mmregs.h"
r0 = DSTAT
nop
a0 = *r0
// Address of DSTAT (DSTAT defined as 0x4206C in 16410_mmregs.h).
// Copy the contents of DSTAT to a0.
After the above code segment executes, the register
a0
contains the value stored in
DSTAT
. The peripherals that
contain memory-mapped registers are listed below:
I
DMAU (See
Table 136 on page 229
).
I
SEMI (See
Table 137 on page 230
).
I
PIU (See
Table 138 on page 231
).
I
SIU0 and SIU1 (See
Table 139 on page 231
.)
CTL0
0x42060
0x4206C
ADDRESS
16 bits
32 bits
0x42040
20 bits
SBAS0
DSTAT
REGISTER