Using JTAG debugging
JTAG debuggers use a connector to write an image directly into RAM, setting the machine to the start address, and then resuming the processor. The launch configurations for a JTAG device let you select which image to use (the supported types are ELF and SRecord).
The QNX Momentics IDE supports the JTAG: Using the Abatron BDI2000 JTAG Debugger with a QNX Neutrino kernel image. Each of these debuggers (each of which has an associated launch configuration type) writes a QNX Neutrino image directly into RAM in a slightly different way:
- For the Abatron BDI2000 Debugger, the default GDB Hardware Debugging contains the init commands dialog. From this dialog,
you can browse the filesystem to select an image (using the Automatically load image dialog.)
- The Lauterbach Trace32 In-Circuit Debugger requires you to write a startup script in a specialized scripting language, called PRACTICE, to provide all of the setup. In particular, loading the image is done through the Data.load.<type> <file> <addr> command. In addition, the Lauterbach device has its own plugin that adds a Trace32 Debugger launch configuration type to the debug dialog.
- For the Macraigor Usb2Demon device, the debugger also uses the default GDB Hardware Debugging that contains a textbox for init commands to use with GDB, where you type the GDB command restore <file> <addr> and the launcher would execute this command before passing control of the debugger over to the IDE. In addition, the Macraigor Usb2Demon Debugger sends GDB commands to a process called OCDremote() that converts them into JTAG commands, which are then understood by the JTAG device.
Updates to the launch configuration types
These launch configuration types are used for JTAG debugging in the IDE:
- GDB Hardware Debugging
— currently included as part of the IDE application, and is used by the Abatron BDI2000 Debugger and the Macraigor Usb2Demon Debugger
- Lauterbach Trace32 Debugger
— an optional plugin that you can install (see Installing the Lauterbach Trace32 Eclipse plug-in software)
Updates to the Debug perspective
In the IDE, the Debug perspective includes buttons to control the processor state through the JTAG device. These buttons start, reset, and halt the device, and link to the corresponding GDB commands for the Abatron and Macraigor devices, and the corresponding PRACTICE command for the Lauterbach Trace32 Debugger.
The Lauterbach Trace32 In-Circuit Debugger plugin don't include a Debug perspective; it launches its own Trace32 software that contains its own buttons for performing actions.