This addendum contains the following sections:
Introduction
Installation
ADS Versions
Motorola DSP Differences
Executable Name
Restrictions
Registers and Reset
Memory Configuration for the DSP563xx/6xx
Communication Setup
Creating a Target Configuration File for a JTAG Chain
Hardware Breakpoints
CrossView Pro for the Motorola DSP56xxx family is designed to support both the Motorola ADS (Application Development System) and the Motorola EVM (EValuation Module) target boards. The Motorola DSPs have a common dedicated serial port called OnCE® (On Chip Emulator). On the 3xx/6xx series, the OnCE® port is accessible through the JTAG (Joint Test Action Group) protocol.
For running CrossView Pro the following parts, delivered by Motorola are required:
For connection of the target board to the host computer you can use:
Figure Emu-1 shows a typical example how these components are tied together.
Figure Emu-1: Target board connection example
On Windows NT and UNIX the device driver interfaces directly with the Host Computer Interface Card. CrossView Pro uses the device driver to communicate with the interface card. On Windows 95, CrossView Pro directly interfaces on the Host Computer Interface Card.
This interface card is connected to the Command Converter via a connection cable. The Command Converter is usually mounted on top of the target board. The command converter converts host commands to the OnCE® .
The PCI interface card is connected to the JTAG Target Interface Module via a 25-pin extension cable. The Target Interface Module is connected via a 14-pin JTAG ribbon cable to the target board. The command converter is present on the PCI card and uses the JTAG protocol to communicate with the OnCE® .
On an EVM board a microcontroller or DSP is used which communicates via RS-232 to the host computer and via OnCE® to the target DSP. This microcontroller/DSP runs a debug monitor which translates commands received via RS-232 from the host to OnCE® commands for the DSP and vice versa. For the DSP56002, the RS232 communication speed is fixed to 19200 baud by this debug monitor. The DSP563xx/6xx can use communication speeds up to 230 kbaud.
For the 3xx/6xx, the OnCE commands are sent using the JTAG protocol. On the 3xx/6xx EVM boards a Command Converter is present, which runs a debug monitor that converts commands received via RS-232 to JTAG commands. The communication speed can be set in a dialog or on the command line.
For connecting to the serial debug port of the DSP563xx and DSP566xx EVM boards, the serial port cable must have the DTR line connected. On these boards, DTR is used to reset the command converter DSP from the debugger. As a minimum, RX, TX, ground and DTR must be connected.
For connecting to the parallel debug port of the DSP563xx and DSP566xx EVM boards, you need a full parallel port extension cable. A 25-pin serial port cable or a lap-link cable is not suitable for this purpose.
Domain Technologies' SB-56K and SB-USB are separate command converters that communicates with the computer through an RS-232 or USB interface respectively. They offer a JTAG port to which you can connect your DSP.
The installation of CrossView Pro is described in the chapter Software Installation in this manual.
For installation of the ADS hardware and the device drivers for UNIX, please see the chapter Hardware Preparation and Installation in the Application Development System Reference Manual delivered by Motorola with your ADS.
For installation of the EVM hardware refer to the hardware documentation supplied with the EVM board.
CrossView Pro is tested with the ADS Command Converter versions 3.0, 4.0, 4.6, 5.0, 6.0, 6.1 and 7.0. When CrossView Pro determines an unknown version of the Command Converter, a warning will be issued. Although CrossView Pro may work with different versions, it is not guaranteed.
Restriction:
CrossView Pro for the Motorola DSP56xxx family supports the DSP5600x, DSP563xx and DSP566xx DSPs. Different CrossView Pro packages exist for each core. The derivatives of each core are supported by means of register files, described in the appendix Register Manager in this manual. The names of the CrossView Pro executables are the same for each package. No differences exist in the functionality of CrossView Pro for the various Motorola DSPs. The CrossView Pro manual is common for the various Motorola DSPs.
The following CrossView Pro executable is delivered with the package (for PC with .exe extension):
xfw56x CrossView Pro Debugger for all members of the DSP56xxx family.
Facilities for background mode are absent for the DSP56xxx target boards. As a consequence, the CrossView Pro commands CB, st, u, ubgw and wt for background mode, are not available. Due to the binary command interface between the debugger and the target board, the >& command to record target communication and the o command for transparency mode are not available. Also Coverage and Profiling are not supported. As a consequence, the CrossView Pro commands ce, cd, covinfo, pe, pd, proinfo, cproinfo, nC, nU, pC, and pU are not available.
Command line function calls are not supported. This is because when functions using a static stack frame are accessed during execution of a command line function call the stack of the application could be corrupted. This is caused by side effects of the overlay mechanism.
Menu and dialog items related to the mentioned commands are disabled (grayed out).
For the DSP5600x it is possible to have one data breakpoint, which is set using the breakpoint register of the OnCE. This data breakpoint can also be set in ROM.
For the DSP563xx/DSP566xx it is possible to have either two data breakpoints, or one data range breakpoint because this is supported by the OnCE on the DSP563xx/DSP566xx.
The number of code breakpoints is limited by the internal CrossView Pro limit (default 200). You can change this limit in the Initialization tab of the dialog box called by the menu option File | Options... Code breakpoints can only be set in RAM because for setting breakpoints, CrossView Pro writes a DEBUG instruction on each breakpoint location. This restriction also affects single stepping because CrossView Pro may want to set a temporary breakpoint for stepping.
The size of the trace buffer of the OnCE limits the number of instructions in the Trace window.
This section describes which registers writes are performed when an EVM or SB-56K system reset occurs (the rst command) or on a program reset (the prst command). For the ADS a system reset depends on the "true" hardware reset.
The following registers are written (in this sequence, for the targets mentioned):
$SR = 0x000300 (DSP5600x) $SR = 0xc00300 (DSP563xx) $SR = 0x0300 (DSP566xx)
For the DSP563xx/6xx SR is written twice in order to
be sure to also set the high byte (which is inaccessible in 16 bit mode).
$SP = 0 (All targets)
$SC = 0 (DSP563xx/6xx)
$OMR = 0 (All targets)
$M0 .. $M7 = 0xffff (DSP5600x and DSP566xx) $M0 .. $M7 = 0xffffff (DSP563xx)
For DSP5600x:
_X:0xffff = 0; /* IPR: Interrupt Priority Register */
For DSP563xx:
_X:0xffffff = 0; /* IPRC: Interrupt Priority Register Core */ _X:0xfffffe = 0; /* IPRP: Interrupt Priority Register Peripherals */ _X:0xffffec = 0; /* DCR0: DMA Control Register 0 */ _X:0xffffe8 = 0; /* DCR1: DMA Control Register 1 */ _X:0xffffe4 = 0; /* DCR2: DMA Control Register 2 */ _X:0xffffe0 = 0; /* DCR3: DMA Control Register 3 */ _X:0xffffdc = 0; /* DCR4: DMA Control Register 4 */ _X:0xffffd8 = 0; /* DCR5: DMA Control Register 5 */
For DSP566xx:
_X:0xffff = 0; /* IPRC: Interrupt Priority Register Core */ _X:0xfffe = 0; /* IPRP: Interrupt Priority Register Peripherals */ _X:0xffec = 0; /* DCR0: DMA Control Register 0 */ _X:0xffe8 = 0; /* DCR1: DMA Control Register 1 */ _X:0xffe4 = 0; /* DCR2: DMA Control Register 2 */ _X:0xffe0 = 0; /* DCR3: DMA Control Register 3 */ _X:0xffdc = 0; /* DCR4: DMA Control Register 4 */ _X:0xffd8 = 0; /* DCR5: DMA Control Register 5 */
The DSP563xx has an on-chip memory controller, which has to be configured to be able to utitilize the external memory on a target board. To download an application in this memory, the controller must be configured before downloading. CrossView Pro configures the memory controller with the values found in some special equate symbols. These symbols are defined in the startup assembly module that is linked to your application. CrossView Pro will use the R_xxxxVALUE symbols in the order listed below to set up the external memory configuration.
Symbol | Register |
R_SRVALUE | SR |
R_OMRVALUE | OMR |
R_AAR0VALUE | AAR0 |
R_AAR1VALUE | AAR1 |
R_AAR2VALUE | AAR2 |
R_AAR3VALUE | AAR3 |
R_BCRVALUE | BCR |
R_DCRVALUE | DCR |
Table Emu-1: Symbols for the ADS563xx or EVM563xx
For the EVM566xx only the symbols R_SRVALUE, R_OMRVALUE and R_BCRVALUE are available.
Example (default hardware configuration values for DSP56301):
R_AAR0VALUE equ $000839 R_AAR1VALUE equ $010839 R_AAR2VALUE equ $000000 R_AAR3VALUE equ $08053A R_BCRVALUE equ $1FFFE1 R_DCRVALUE equ $20280A R_OMRVALUE equ $000000 R_SRVALUE equ $C80300 global R_SRVALUE, R_OMRVALUE, R_AAR0VALUE, R_AAR1VALUE, R_AAR2VALUE, R_AAR3VALUE, R_BCRVALUE, R_DCRVALUE
In EDE you can select the target hardware configuration
as follows:
1. From the Project menu, select Project Options...
2. Expand the Linker/Locator entry and select Control File.
3. In the Target list, select a target configuration.
The configuration files "*.cfg" describe the available target board configurations. A configuration file is a text file and can be edited with any text editor. CrossView Pro searches for the configuration file in the current directory and in the etc directory.
On startup CrossView Pro selects the configuration indicated by the Target | Settings dialog or with the -tcfg command line option and reads the configuration file in memory. This configuration can be selected using the filename or the full name (title field) of the configuration.
Empty lines, lines consisting of only white space are allowed. Comments start at an exclamation-sign ('!') and end at the end of the line. Lines that start with the special notation '!>' are script lines that are executed by CrossView Pro.
An information line has the following synopsis:
field one of the keywords described below
field-value the value assigned to the field
comment optional comment
The fields listed in the configuration file are:
Field | Description |
title | The full name of the configuration. This name will be displayed in the Target configuration field of the Target | Settings dialog. |
cpu_type | The name of the CPU. You can specify multiple CPU type separated by white space. This also determines the name of the register file regcpu.dat in the etc directory. |
debug_instrument_module | The name of the Debug Instrument (using GDI) used for debugging. See table below. |
target_dependent_module | The name of the target specific module needed for your DSP56xxx derivative. |
radm | The name of the Debug Instrument (using KDI) used for RTOS aware debugging. (optional). |
Table Emu-2: Fields in configuration files
Notes:
The following table shows an overview of the available configuration files.
Configuration File | Debug Instrument | Connection | Target |
ads560.cfg ads563.cfg ads566.cfg ads665.cfg |
adsxxx6x.dll ntaxxx6x.dll |
ISA |
ADS command converter |
pci563.cfg pci665.cfg |
adsxxx6x.dll ntaxxx6x.dll | PCI | PCI command converter |
par563.cfg |
adsxxx6x.dll ntaxxx6x.dll | Parallel | Parallel on board / external cmd converter |
usb560.cfg usb563.cfg usb566.cfg |
usbxxx.dll |
USB |
SB-56K serial command converter |
sb560.cfg sb563.cfg sb566.cfg |
sbxxx.dll |
RS-232 |
SB-USB Univ. serial bus cmd converter |
evm563.cfg evm566.cfg | evmxxx.dll | EVM on board cmd converter | |
sim560.cfg sim563.cfg sim566.cfg sim665.cfg |
simxxx.dll |
Simulator |
Table Emu-3: Overview of configuration files
It is possible to debug multiple DSPs on a JTAG chain. You have to make your own target configuration file to use this feature in CrossView Pro.
1. Go to the directory etc of your product installation directory.
2. Edit the file mul563.cfg (Windows 95/98) or mul563nt.cfg (Windows NT/2000).
3. Make the following changes:
- Define the JTAG chains by adding a number of lines with the following format:
target_config_item.i: add_jtag_def CHAIN_ELEM_DEF
cc=N | (CC number, N = 0, ..., 7 are supported) |
tms=0 | (currently only tms=0 is supported) |
cpu=CPU_TYPE | (a cpu type supported by the debug instrument) |
ir=LENGTH | (define the Instruction Register length of a non-recognized JTAG chain element) |
target_config_item.0: add_jtag_def cpu=56302 target_config_item.1: add_jtag_def cpu=56302 target_config_item.2: add_jtag_def cpu=56301
target_config_item.0: add_jtag_def cc=0,tms=0,cpu=56302 target_config_item.1: add_jtag_def cc=0,tms=0,cpu=56302 target_config_item.2: add_jtag_def cc=0,tms=0,cpu=56301
- Add
n_target_config_items: N
- Set the default CC and CPU type by modifying the lines
!> cpu_type = {cpu_type.{current_em_type}} | "56301" !> gdi_execution_environment = {gdi_execution_environment.{current_em_type}} | "ISA" !> gdi_features_config_item = {gdi_features_config_item.{current_em_type}} | "56301"
!> cpu_type = {cpu_type.{current_em_type}} | "56302" !> gdi_execution_environment = {gdi_execution_environment.{current_em_type}} | "ucc0" !> gdi_features_config_item = {gdi_features_config_item.{current_em_type}} | "0:56302"
4. Now you can select the file mul563.cfg in the target configuration dialog or select it from the command line:
xfw56x -tcfg mul563.cfg
The target hardware breakpoint logic can be set directly using the following emulator command:
The combinator and setting of bp1 are optional, as is the count.
Address bus select:
Comparator mode select:
Access mode select:
Combinator logic:
If you select a data breakpoint in CrossView Pro, this
will override the settings specified by the emulator command.
The breakpoint is cleared with the command:
Examples:
- Breakpoint at _P:0x104 read:
o set_hw_break p=104r
- Breakpoint at range _X:0x100-0x200 (inclusive) on write access:
o set_hw_break x>ffw&<201w
- Breakpoint at the fifth read on _Y:0x200-0x300 (inclusive):
o set_hw_break y>1ffr&<301r4
For the DSP5600x the target hardware breakpoint emulator command is a bit different:
If OMULR is not specified, it will be equal to OMLLR.
See the family manual for details.
Examples:
- Executed _P:0x104:
o set_hw_break e104
- Breakpoint at range _X:0x100-0x200 (inclusive) on write access:
o set_hw_break xw100-200
- Breakpoint at the fifth read on _Y:0x200-0x300 (inclusive):
o set_hw_break yr200-300:4