A family of Eclipse CDT extensions and tools for GNU ARM development

How to install the SEGGER J-Link?

Contents

Why J-Link?

In case you wonder why GNU ARM Eclipse decided to provide support to SEGGER J-Link, the short answer is: because of J-Link EDU and of SWO. The long answer may include the following:

wide processor support (there is probably no unsupported ARM processor in the entire galaxy, and if you find one in a remote quadrant, I’m pretty sure it’ll be shortly added to the list)

it is a true multi-platform solution, providing drivers for Windows, macOS and GNU/Linux

it comes with a standard GDB server implementation, compatible with existing ARM toolchains

in addition to the classical JTAG protocol, it implements the new SWD protocol

when SWD is selected, it is capable to sample the SWO pin, for trace messages and other ARM specific debugging

it is fast, up to 15 MHz for JTAG clock and up to 7.5 MHz SWO sampling frequency for the new V9 hardware (12 MHz JTAG / 6 MHz SWO for V8, and even up to 100 MHz SWO for the high-performance ULTRA+, PRO models)

it supports all possible target voltages, from 1.2V to 5V

in addition to the regular debugging functionality, it is also able to write the internal flash, and, even more, it uses a smart flash writing algorithm, to avoid useless writes if the flash blocks did not change

it is a mature, proven product, with a great support team

it provides an entire range of probes, J-Link, J-Link Pro, including a special priced version for educational use, the J-Link EDU (available from many distributors, for example from Farnell)

The J-Link was present on the JTAG market for many years, but, considering the initial prices, only the big companies could afford them. After a fierce fight against Chinese clones, sold for a fraction of the price, in 2012 SEGGER decided to introduce a low price version, J-Link EDU, restricted to educational and non-commercial usage, making it the JTAG probe of choice for open source GNU ARM development.

Overview

J-Link comes not only with a GDB server, but with a complete set of drivers and utilities, packed by SEGGER separately for each platform. The same distribution includes drivers for all J-Link probes, so installation is quite simple. The J-Link binaries are available from the SEGGER site.

There are different sections, grouped by platform (Windows, macOS, Linux, Linux ARM); go to the platform of your choice.

Click the Download button close to the Software and documentation pack appropriate for your development platform. For Linux there are separate 32/64-bits versions, packed with different tools (DEB, RPM, TGZ); select the package that better matches your system.

Documentation

Windows

The Windows file is a ZIP archive, named like Setup_JLinkARM_V480.zip. After unpacking it, a Windows executable file is obtained, named like Setup_JLinkARM_V480.exe.

double click it to start the installation process

enter the administrative password

accept the license

accept the destination folder (C:\Program Files\SEGGER\JLinkARM_V480)

accept the default USB driver

The result of the install is a folder (a new folder for each new version installed), and a set of driver files installed in the system folders, overwritten with each new install.

Please note that on Windows, SEGGER provides both graphical interface and command line versions (having the names suffixed with CL) for most of their tools. For the J-Link plug-in it is recommended to use only the command line version of the J-Link GDB server (JLinkGDBServerCL.exe).

macOS

The macOS download is an macOS package installer, like JLink_MacOSX_V480.pkg.

double click it to start the installation process

accept the license

enter the administrative password, required to write in the global /Applications folder

The result of the install is a folder like /Applications/SEGGER/JLink_V641b/ (a different folder for each version) where all executables and libraries are stored; please note that, as for many macOS applications, no other driver files are installed in the system folders, but some symbolic links are created in the /usr/local/bin folder.

Be sure to update the path in Eclipse preferences page to point to the latest SEGGER J-Link software.

USB

On macOS, the USB subsystem automatically identifies and allows access to USB devices, without the need to maintain a manual list similar to the one used by UDEV in GNU/Linux. No other drivers or system configurations are required.

GNU/Linux

As already mentioned, there are multiple packages available for GNU/Linux on the SEGGER download site, built as Debian/Red Hat packages, in 32/64-bits versions, or plain TGZ archives. Select the one appropriate for you system and use the specific tools to install the package. For example, on Ubuntu, to install the 64-bits .deb file, use the following command:

$ sudo dpkg -i ~/Downloads/jlink_5.2.7_x86_64.deb

The J-Link executables are installed in /usr/bin.

In case you have a 64-bits machine and install the 32-bits SEGGER package, you might need several 32-bits libraries, depending on distribution.

UDEV

The install procedure automatically adds /etc/udev/rules.d/99-jlink.rules to define the USB IDs of the J-Link devices. No other drivers are required.

Testing

To test if J-Link is able to connect to a specific board, you generally need to specify the interface (JTAG or SWD) and the device name. By default, J-Link GDBServer will try JTAG but if only SWD is wired (which is very common on custom hardware), you would need to specify the interface (-if SWD). The device name is needed for targets which require special handling on connect (e.g. due to silicon bugs which make auto-detection impossible). For a list of available device names, please refer to the SEGGER Supported devices page. Below is an example how to test a JTAG connection to a STM32F103 evaluation board (-device STM32F103RB) on macOS.