From SEGGER Wiki
Jump to navigation Jump to search

J-Trace is a SEGGER debug and trace probe, specialized on live instruction tracing.

For the full feature set and best performance, it is recommended to use J-Trace in combination with the Ozone debugger.

For purchasing information and technical specification, please refer to the SEGGER homepage

General information about tracing

Available Trace features

Some trace features are only available for the J-Trace Pro series. For more information see below.


J-Trace Pro

Tested devices

The tested devices page on the SEGGER homepage contains a variety of different devices, that trace support has been tested with. For these devices example projects are available, including J-Link script files containing the required (pin) init. This is usually the best starting point if you want to trace a device, as it provides an out of the box experience.

Together with the J-Trace Pro, a trace reference board is shipped. For this board, a trace tutorial project is available on the SEGGER homepage.

Setting up Trace with J-Trace

If no example project is available for a specific device an example project can be requested via the official SEGGER Technical support. Alternatively, support can also be added manually which is explained below.

Pinout / Trace debug interface

Usually, devices provide multiple trace pin combinations to use trace with. This also means, that the pins have to be initialized before tracing can work.

The trace pinout (19-pin) used by J-Trace can be used with JTAG and SWD:

Trace pin initialization

The pins, clocks, etc. required for tracing can be initialized either via the device application, or via a J-Link Script file. Using a J-Link script file is generally recommended, as otherwise the init section of the code will not be traced when initializing trace from the target application. Another benefit is that by using a J-Link Script file you guarantee that not debug code gets overlooked and accidentally stays in your final product code. In some rare cases it might also be the case that the Arm specific registers may not be written by the J-Trace probe before they have been clocked by a chip specific init. So doing the init via the target application would be way to late. The J-Link script makes sure everything is initialized at the correct time to avoid such issues.

Setting up Trace with Ozone

Setting up Trace with different IDEs

Technical specification

Trouble shooting

In this section multiple trouble shooting articles are referenced.

Trace related

J-Trace Probe / driver related