J-Trace
THIS ARTICLE IS STILL IN PROGRESS
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
- General information about different trace types
- General information about Arm Coresight trace elements:
- Arm trace specification and timings
Available Trace features
J-Link
J-Trace
- J-Trace supports all of the features listed above.
- Realtime/Streaming Trace
- Live code coverage
- Live code profiling
- Backtrace - Gap less instruction "time machine": When the target is halted all the recorded data will be read from the recording buffer. Currently this buffer is limited to the J-Trace memory (64 MB). Unlimited (host side buffering) is coming soon.
- Trace to file
- Trace automation with Ozone
- J-Trace vs. J-Trace_PRO
Tested devices
The tested devices page on the SEGGER homepage contains a variety of different devices, 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, and example project can be request via the official SEGGER Technical support. Otherwise, support can also be added manually.
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:
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.
Setting up Trace with Ozone
Setting up Trace with different IDEs
- Embedded Studio
- KEIL MDK
- e2Studio
- IAR - TBD.
Trouble shooting
In this section multiple trouble shooting articles are referenced.
- Adjusting trace timings and general troubleshooting
- Debug & Trace with RAM Functions / reading into trace cache
- Handling J-Trace overflow errors