
Click above to get retro games delivered to your door ever month!
X-Hacker.org- TMS320C2x DSP - the tms320c2x provides a total of 544 16-bit words of on-chip data
[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
The TMS320C2x provides a total of 544 16-bit words of on-chip data
RAM, of which 288 words are always data memory and the remaining 256
words may be configured as either program or data memory. The
TMS320C25 also provides 4K words of maskable program ROM.
MEMORY MAPS
The TMS320C2x provides three separate address spaces for program
memory, data memory, and I/O as shown below. These spaces are
distinguished externally by means of the
__ __ __
PS, DS, and IS (program, data, and I/O space select) signals.
__ __ __ ____
The PS, DS, IS, and STRB signals are only active when external
memory is being addressed. During an internal addressing cycle,
these signals remain inactive high, thus preventing conflicts in
memory addressing, e.g., when block B0 is configured as program
memory.
The on-chip memory blocks B0, B1, and B2 are comprised of a total
of 544 words of RAM. Program/data RAM block B0 (256 words) resides
in pages 4 and 5 of the data memory map when configured as data RAM
and at addresses >FF00 to >FFFF when configured as program RAM.
Block B1 (always data RAM) resides in pages 6 and 7, while block B2
resides in the upper 32 words of page 0. Note that the remainder of
page 0 is composed of the memory-mapped registers and internally
reserved locations, and pages 1-3 of the data memory map consist of
internally reserved locations. The internally reserved locations may
not be used for storage, and their contents are undefined when read.
See also "memory-mapped registers".
The on-chip RAM is mapped into either the 64K-word data memory or
program memory space, depending on the memory configuration. The
CNFD/CNFP instructions are used to configure block B0 as either data
or program memory, respectively. The BLKP (block move from program
memory to data memory) instruction may be used to download program
information to block B0 when it is configured as data RAM. Then a
CNFP (configure block as program memory) instruction may be used to
convert it to program RAM (see also "memory management"). Regardless
of the configuration, the user may still execute from external
program memory. Note that when accessing internal program memory,
external control lines remain inactive.
Reset configures block B0 as data RAM. Due to internal pipelining,
when CNFD or CNFP instruction is used to remap RAM block B0, there
is a delay before the new configuration becomes effective. This
delay is one fetch cycle if execution is from internal program RAM.
On the TMS32020, adelay of one fetch cycle occurs if execution is
from internal program memory. On the TMS320C25, there is a delay of
two fetch cycles if execution is from ROM or external program
memory. This is particularly important if program execution is from
the locations around >FF00. Accordingly, a CNFP instruction must
be placed at program location >FEFD in external memory if execution
is to continue from the first location in block B0. If a CNFP is
placed at location >FEFD, and the instruction at >FEFF is a two-word
instruction, the second word of the instruction will be fetched from
the first location in block B0. If execution is from above location
>FF00 and block B0 is reconfigured, care must be taken to assure
that execution resumes at the apprpriate point in a new
configuration.
On-chip program ROM on the TMS320C25 is located in the lower 4K
words of program memory when selected by setting
__ __
MP/MC = 0. When MP/MC = 1, the lower 4K words of program memory are
external.
MEMORY MAPS AFTER CNFD INSTRUCTION
PROGRAM PROGRAM DATA
>0000+--------------+ >0000+--------------+ >0000+--------------+
| INTERRUPTS | | INTERRUPTS | | ON-CHIP |
| AND RESERVED | | AND RESERVED | | MEMORY-MAPPED|
>001F| (EXTERNAL) | >001F|(ON-CHIP ROM) | | REGISTERS |
|--------------| |--------------| >0005|--------------|
>0020| | >0020| ON-CHIP | >0006| RESERVED |PG 0
| | >0FAF| ROM | >005F|--------------|
| | |--------------| >0060| ON-CHIP |
| | >0FB0| RESERVED | >007F| BLOCK B2 |
| | >0FFF| | >0080|--------------|
| | |--------------| >01FF| RESERVED |PG1-3
| | >1000| | |--------------|
| EXTERNAL | | | >0200| ON-CHIP |
| | | | >02FF| BLOCK B0 |PG4-5
| | | EXTERNAL | |--------------|
| | | | >0300| ON-CHIP |
| | | | >03FF| BLOCK B1 |PG6-7
| | | | |--------------|
| | | | >0400| |PG 8-
| | | | | EXTERNAL | 511
>FFFF+--------------+ >FFFF+--------------+ >FFFF+--------------+
IF MP/MC = 1 IF MP/MC = 0
TMS320C25 ONLY
MEMORY MAPS AFTER CNFP INSTRUCTION
PROGRAM PROGRAM DATA
>0000+--------------+ >0000+--------------+ >0000+--------------+
| INTERRUPTS | | INTERRUPTS | | ON-CHIP |
| AND RESERVED | | AND RESERVED | | MEMORY-MAPPED|
>001F| (EXTERNAL) | >001F|(ON-CHIP ROM) | | REGISTERS |
|--------------| |--------------| >0005|--------------|
>0020| | >0020| ON-CHIP | >0006| RESERVED |PG 0
| | >0FAF| ROM | >005F|--------------|
| | |--------------| >0060| ON-CHIP |
| | >0FB0| RESERVED | >007F| BLOCK B2 |
| | >0FFF| | >0080|--------------|
| | |--------------| >01FF| RESERVED |PG1-3
| | >1000| | |--------------|
| EXTERNAL | | | >0200| DOES NOT |
| | | | >02FF| EXIST |PG4-5
| | | EXTERNAL | |--------------|
| | | | >0300| ON-CHIP |
>FEFF| | >FEFF| | >03FF| BLOCK B1 |PG6-7
|--------------| |--------------| |--------------|
>FF00| ON-CHIP | >FF00| ON-CHIP | >0400| |PG 8-
| BLOCK B0 | | BLOCK B0 | | EXTERNAL | 511
>FFFF+--------------+ >FFFF+--------------+ >FFFF+--------------+
IF MP/MC = 1 IF MP/MC = 0
TMS320C25 ONLY
See Also: program memory data memory memory-mapped registers
Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson