SEGGER J-Link
JLink Commander Executable
Installing the SEGGER J-Link Software and Documentation Pack should provide you with a J-Link executable. This is called the “J-Link Commander”. On Windows this is named JLink.exe, and is typically installed to C:\Program Files\SEGGER\JLink_V<version>\JLink.exe (e.g. C:\Program Files\SEGGER\JLink_V874a\JLink.exe).
Chip names are how J-Link identifies the connected device. For example, for the nRF9151 MCUs from Nordic Semiconductor, the name is nRF9151_xxCA.
RTOS Awareness
The J-Link has built-in RTOS awareness for the following RTOSs:
Built-in support allows you to see RTOS specific information in the debugger, such as the thread stacks and state.
Files to support these RTOSs can be found in the GDBServer sub-directory under the J-Link Software and Documentation Pack installation directory.
RTT
Real-Time Transfer (RTT) is a feature of the J-Link that allows you to transfer arbitrary data between the host and the target microcontroller over the SWD or JTAG interface. It works by writing data to a special region of memory on the target microcontroller. The J-Link probe can read this data without interrupting the CPU and can be read a high speeds (> 1MHz). It is supported on ARM Cortex-A/R/M, RISC-V and Renesas RX architectures.1
This is a placeholder for the reference: fig-comparison-of-rtt-swo-and-semihosting shows the speeds of outputting 82 characters from a MCU to a host computer using RTT, SWO and semihosting (semihosting is when the target CPU is halted and put under control of the debug host for a period of time to perform some action, e.g. read memory). Note the logarithmic y-axis!
RTT supports multiple communication channels in both directions.1 Each channel can have a direction (up vs. down), buffer size and flags associated with it. Up channels are used to send data from the target MCU to the host computer, and down channels are used to send data from the host computer to the target MCU. This is always the case, i.e. the naming convention does NOT change with respect to the device you are writing software for (as opposed to say UART, where the naming of RX and TX depends on which device you are talking about).
SEGGER provides two tools to view RTT data on your computer. A command line RTT client called JLinkRTTClient.exe and a GUI RTT client called J-Link RTT Viewer. Both of these are provided as part of the J-Link Software and Documentation Pack. When you run the client, it connects to an RTT server running at localhost:19021. Before running the client, make sure you have started JLink.exe and connected to your target device. This will start up the server which the client will connect to.
By default, the JLink client will echo data back to the screen. This can be disabled by providing the command line option -LocalEcho Off:
JLinkRTTClient.exe -LocalEcho OffJ-Scope, a data visualization tool by SEGGER that can graph MCU data uses RTT as one of it’s two communication channel options (SEGGER’s High-Speed Sampling or HSS is the other option). J-Scope automatically reads memory on the target MCU and graphs the data in real-time.3
Square pylink
pylink is a Python library for controlling Segger J-Link devices. It supports:
- SWD
- RTT
You can install it with:
uv add pylink-squareYou will also need to install the SEGGER J-Link Software and Documentation Pack. This pack installs SEGGER’s C-libraries for interacting with a J-Link. pylink contains bindings to call functions in these libraries.
PhinCo/node-jlink
PhinCo/node-jlink is a NodeJS driver for the SEGGER J-Link command line tool jlinkexe.4 You will also need to install the SEGGER J-Link Software and Documentation Pack so that jlinkexe is available in your PATH to the driver..
Footnotes
-
SEGGER. Real Time Transfer (RTT). Retrieved 2025-10-23, from https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/. ↩ ↩2
-
SEGGER. RTT [knowledge base article]. Retrieved 2025-11-03, from https://kb.segger.com/RTT. ↩
-
SEGGER. J-Scope - Real-time data visualization. Retrieved 2025-11-03, from https://www.segger.com/products/debug-probes/j-link/tools/j-scope/. ↩
-
PhinCo. PhinCo/node-jlink [repository]. GitHub. Retrieved 2025-10-21, from https://github.com/PhinCo/node-jlink. ↩