JTAG support — Usage

Use of JTAG for debugging

JTAG can be used to single-step and debug loaded applications, including RedBoot. Only ROM configuration applications should be debugged using JTAG, RAM applications assume the presence of RedBoot.

Ronetix PEEDI notes

On the Ronetix PEEDI, the peedi.zoom.cfg file should be used to setup and configure the hardware to an appropriate state to load programs. This includes setting up the PLLs and SDRAM controller.

The peedi.zoom.cfg file also contains an option to define whether hardware or software breakpoints are used by default, using the CORE0_BREAKMODE directive in the [PLATFORM_ARM] section. Edit this file if you wish to use hardware break points, and remember to restart the PEEDI to make the changes take effect.

On the PEEDI, debugging can be performed either via the telnet interface or using arm-eabi-gdb and the GDB interface. In the case of the latter, arm-eabi-gdb needs to connect to TCP port 2000 on the PEEDI's IP address. For example:

(gdb) target remote 111.222.333.444:2000

By default when the PEEDI is powered up, the target will always run the initialization section of the peedi.zoom.cfg file, and halts the target. This behaviour is repeated with the reset command.

If the board is reset (either with the 'reset', or by pressing the reset button) and the 'go' command is then given, then the board will boot as normal. If a second-level bootstrap and ROM RedBoot is resident in flash, it will be run.

Consult the PEEDI documentation for information on other features.

Running ROM applications

Applications configured for ROM startup can be run directly under JTAG. Once loaded and running via JTAG, HAL diagnostic output will appear by default on the serial debug port.

Installing user applications into Flash with JTAG

If you wish to install a ROM startup application into Flash to be automatically booted, you can follow a similar procedure to installing RedBoot into Flash. However before you can do so, you must first prepend a header to your application image in order for the TI User Boot Loader (UBL) to recognise it as a valid application.

You will need to locate the script flashimg.tcl in the misc subdirectory of the Zoom platform HAL (i.e. packages/hal/arm/arm9/zoom_l138/VERSION/misc/flashimg.tcl) and generate a binary image of your program using the arm-eabi-objcopy command. The following gives an example simplified command sequence which can be run at a command shell prompt:

arm-eabi-objcopy -O binary myapp myapp.bin
flashimg.tcl myapp.bin myapp.img

You will need to subsitute your own paths and filenames where applicable. Additionally, if your board is installed with a UBL version earlier than 1.65, you are likely to need to use the extra option -oldubl to flashimg.tcl, otherwise you may receive errors about missing magic numbers from UBL at boot time.

Once you have the .img file, you can follow the same process as installing RedBoot via JTAG.