JTAG hardware 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 three types of JTAG debuggers. Each of these has an associated launch configuration type,
and writes a QNX Neutrino image into RAM in a slightly different way:
- For the Abatron BDI2000 Debugger, you can use the init commands dialog in the GDB Hardware Debugging
launch configuration. 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 to the debug
dialog.
- For the Macraigor Usb2Demon Debugger, you can also use the init commands dialog in the GDB Hardware Debugging
launch configuration. In the textbox, you can type the GDB command
restore <file> <addr> and the launcher then executes this
command before passing control of the debugger over to the IDE. In addition, the Macraigor device sends GDB commands to
a process called OCDremote(), which converts them into JTAG commands that are 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, used by
the Abatron BDI2000 Debugger and the Macraigor Usb2Demon Debugger
- Lauterbach Trace32 In-Circuit Debugger — an optional plugin that you can install
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 device.
The Lauterbach Trace32 In-Circuit Debugger plugin doesn't include a Debug perspective; it launches its own Trace32 software
that contains its own buttons for performing actions.