With up to 3 MBytes/s download speed to RAM and record-breaking flashloaders, as well as the ability to set an unlimited number of breakpoints in flash memory of MCUs, the J-Link debug probes are undoubtedly the best choice to optimize your debugging and flash programming experience.
J-Link debug probes support a wide range of CPUs and architectures. Be it from simple 8051 ones, through mass market Cortex-M up to high end cores like Cortex-A (32- and 64-bit). For a complete list of supported cores and devices, please refer to here.
J-Link also supports directly interfacing SPI flashes, without the need of a CPU between J-Link and the SPI flash (directly communicating via the SPI protocol). For more information, please refer to the J-Flash SPI page.
J-Link is supported by all major IDEs, from free Eclipse based ones (directly or via GDB) up to commercial ones, including SEGGER Embedded Studio. For a complete list, please refer to the Supported IDEs page.
The J-Link Software and Documentation Package available for download includes a significant number of tools, that ease the developer's work and extend the capabilities of J-Link. Almost all J-Link tools have cross platform support and run on Windows, Linux and macOS.
J-Link Configurator simplifies the management of several J-Links like updating the firmware of different J-Links at once. J-Link Configurator displays information about the connected J-Link.
The J-Link GDB Server is a remote server for the GDB which enables using J-Link directly with GDB or any toolchain which uses GDB as debugging interface.
J-Link Remote Server
J-Link Remote Server (previously called J-Link TCP/IP Server) is a small server application that allows using J-Link / J-Trace remotely via any TCP/IP hardwired (Ethernet) or wireless (WiFi) network.
J-Scope is a software to analyze and visualize data on a microcontroller in real-time, while the target is running, in an oscilloscope-style view. Data acquisition is handled via HSS or RTT and does not require SWO.
J-Flash is a PC software to program internal and external flash memory of a microcontroller-based embedded system via J-Link or Flasher. J-Flash is running on Windows systems.
J-Flash SPI is a PC software to program the external SPI flash memories via J-Link or Flasher. J-Flash SPI is running on Windows systems.
Ozone is a full-featured graphical debugger for embedded applications. With Ozone it is possible to debug any embedded application on C/C++ source and assembly level. Ozone can load applications built with any tool chain / IDE or debug the target's resident application without any source. Ozone includes all well-known debug controls and information windows and makes use of the best performance of J-Link and J-Trace debug probes. The user interface is designed to be used intuitively and is fully configurable. All windows can be moved, re-sized and docked to fit the need of any developer.
Ozone is more than a simple debugger. Its various features, including trace, code profiling and code coverage analysis make it a powerful performance analyzer, which enable you to get full system insight, to track down inefficiencies and bugs, and to make your products even better.
SystemView is a real-time recording and visualization tool for embedded systems that reveals the true runtime behavior of an application, going far deeper than the system insights provided by debuggers. This is particularly effective when developing and working with complex embedded systems comprising multiple threads and interrupts: SystemView can ensure a system performs as designed, can track down inefficiencies, and show unintended interactions and resource conflicts, with a focus on the details of every single system tick.
Embedded Studio is a complete all-in-one solution for managing, building, testing, and deploying your embedded applications: From the project generator which gets you easily started with common microcontrollers, to the powerful project manager, and source code editor, the included C/C++ compiler, and the integrated debugger with advanced debug information windows, and direct J-Link integration, right through to version control features for automatic deployment of your applications. Embedded Studio is the best solution for embedded C programming.
Its Visual Studio-like style offers the embedded world of engineering the same intuitive usage that PC developers are familiar with.
The product family of SEGGER J-Links offers a range of products for different use cases. The models are displayed below. For a feature comparison please visit the dedicated J-Link model overview.
J-Link PLUS Compact
J-Link BASE Compact
J-Link EDU Mini
In addition to SEGGER's own software, the J-Link supports a host of 3rd party software aiding embedded system development. For details about the supported development tools, please visit the overview of supported IDEs and the 3rd party applications.
J-Link can be used with GDB based setups.
The GNU Debugger (GBD) is the de facto debugger when developing on Linux systems. However, it also found its way into embedded development (also without Linux running on the target system). GDB provides a standardized interface / API that can be used by an IDE.
It also specifies a standardized protocol (GDB remote protocol) which allows GDB to communicate with a GDBServer that knows how to handle the debug probe connected to the target. The J-Link software package comes with the J-Link GDBServer which allows using J-Link in GDB based setups.
J-Link can be used with LLDB.
While originally, GNU toolchains provided GCC as compiler and GDB as debugger, with the introduction of Clang as compiler, there was also the introduction of LLDB which is basically a successor or GDB. Protocol-wise it is backward compatible to GDB while the API for the IDE is slightly different. The J-Link software package comes with the J-Link GDBServer which also allows using J-Link in LLDB based setups.
J-Link can be used with OpenOCD (Open On-Chip Debugger).
OpenOCD is an open-source software that can interface basically any debug probe. It provides a standardized API, allowing an IDE to support OpenOCD. There are several tutorials on the internet that describe how to use J-Link with OpenOCD.
Note: OpenOCD is a 3rd party software, so SEGGER cannot provide any guarantees etc. Using J-Link with OpenOCD bypasses all J-Link specific features like flash programming, unlimited flash breakpoints and the J-Link high debugging speed. OpenOCD will handle J-Link as a simple sequence generator which will affect the debug performance. Please also note that using J-Link with OpenOCD is not covered by the standard J-Link support. Support for OpenOCD is provided by the OpenOCD community.
No more guessing! The J-Link control panel gives full transparency of what J-Link is currently doing.
The J-Link control panel is available on all platforms (Windows, Linux, macOS) and does not require any additional utility to be installed / started. It is available through the regular web browser.
Who does not know it? An IDE has been chosen and working with it is started. Then, a new, very useful feature is introduced in the J-Link software but the IDE has not adapted it yet. Or even worse, the IDE cannot be updated due to certification reasons. The J-Link control panel provides the opportunity to make use of new J-Link features without even touching the IDE itself.
SEGGER J-Link Flash Breakpoint Introduction
SEGGER J-Flash Introduction
Ultra high speed flash programming
In order to use J-Link for the first time you need to install the J-Link related software and documentation pack which, among others, includes the J-Flash software, and connect J-Link to the host PC via USB.
In general, J-Link should be powered on before connecting it with the target device. That means you should first connect J-Link with the host system via USB and then connect J-Link with the target device. Power-on the device after you connected J-Link to it.
If you use J-Link PRO with Ethernet, just power-on J-Link via external power supply.
If the USB driver is working properly and your J-Link is connected with the host system, you may connect J-Link to your target hardware. Then start the J-Link command line tool JLink.exe, which should now display the normal J-Link related information. Now type connect and specify your target, and the target interface. Once done it should display a report about the connected CPU and its debug interface. The screenshot shows the output of JLink.exe. As can be seen, it reports a J-Link connected to an STM32F205 and the related information.
To connect your J-Link with your development project, please consult the guide for your favourite tool-chain.
J-Link comes with built-in virtual COM port (VCOM) functionality. This means that in addition to the regular J-Link debug functionality, J-Link will also show up as a COM port in the device manager of the operating system.
As most modern computers do not expose a physical COM port anymore but many hardware setups still use UARTs for logging, diagnostics and application control, usually a separate COM to USB adapter is needed to use the COM functionality of the target hardware while debugging in parallel.
With J-Link, such an additional adapter is not required as J-Link provides this adaption functionality.
The J-Link VCOM functionality is implemented via SEGGER emUSB-Device, using the CDC-ACM class.
For more information, please refer to the emUSB-Device pages.
J-Link models are shipped with VCOM functionality disabled. It can be enabled via the J-Link Configurator utility. For more information about how to enable VCOM on a J-Link, please refer to the J-Link user guide.
The following pins on the stadard 20-pin 0.1" connector on J-Link are used for VCOM functionality:
- 5: J-Link Tx
- 17: J-Link Rx
- VCOM functionality is not available for the J-Link EDU Mini model
- VCOM functionality is not available when using the traditional 4-wire JTAG interface for target communication, as Pin 5 is needed as TDI for this interface
A: J-Link has numerous advantages. One of the biggest advantages is the J-Link software supplied by SEGGER, which allows using it with common IDEs, the availability of unlimited flash breakpoints for people debugging software which runs in the flash of microcontrollers, as well as the high speed of the J-Link and the simple and very fast download into flash memory. In contrast to most of the simple probes, it supports adaptive clocking as well as SWD and SWO. It also works more stable since it is not just a dump USB to JTAG converter, but uses the intelligence of the built-in CPU, providing a more robust communication, especially in situations where the target CPU runs at low clock speeds.
A: Yes. We offer a dedicated Software Developer Kit (SDK). It allows using the full J-Link functionality. [More info...]
A: Yes! In most cases the J-Link auto-detection works fine and recognizes the core of a device automatically. However, in some cases the auto-detection of J-Link does not work e.g. if the core is not present in the JTAG chain by default and needs to be enabled by sending a command to another device in the JTAG-chain. In such cases, the connection sequence of J-Link can be customized by using a J-Link script file which is executed before the communication between J-Link and the target system starts. The script file allows maximum flexibility, so almost any target initialization which is necessary can be supported.
A: If the target provides the RTCK signal, select the adaptive clocking function to synchronize the JTAG clock (TCK) to the processor clock outside the core. This ensures there are no synchronization problems over the JTAG interface. If you use the adaptive clocking feature, transmission delays, gate delays, and synchronization requirements result in a lower maximum clock frequency than with nonadaptive clocking. This is the recommended JTAG speed used to connect to ARM7/9 -S cores.
A: Simple: Two or more debuggers can use the same J-Link simultaneously. Multi-core debugging requires multiple debuggers or multiple instances of the same debugger. You need to tell your debugger which device in the scan chain you want to debug. Additional special settings are not required.
A: Yes, you can connect an unlimited number of J-Links to your PC. No special configuration is required, since each J-Link is registered with its unique serial number at the PC, allowing it to have multiple J-Links connected in parallel.
A: J-Link works with ARM7/9/11, Cortex-A5/A8/A9, Cortex-M0/M0+/M1/M3/M4/M7, Cortex-R4/R5, Microchip PIC32 and Renesas RX100/RX200/RX600 series CPUs.
Here is a detailed list of supported CPUs and Devices.
A: Yes, the status of all pins can be read. This includes the outputs of J-Link as well as the supply voltage, which can be useful to detect hardware problems on the target system.
A: Yes. J-Link supports ETB on Cortex-M3/M4/M7 and Cortex-A/R (if implemented by target device).