
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