SEGGER J-Link Pro: an exhaustive review
In our minds, we have always seen SEGGER debugging solutions like a professional but costly tools: a debugger to perform advanced operations but definitely too much for a student. Some time ago we heard about a new version of SEGGER, the J-Link EDU, which is cheaper and addressed virtually to us. It started to take shape the idea of using it as external debugger for these ARM evaluation kit which comes without a debugger.
Some month ago SEGGER proposed a firmware suitable for STM32 Nucleo on-chip debugger which makes J-Link available also for the STM32 ecosystem and they notified us this solution commenting our STM32 Nucleo-144 review. After an exchange of reciprocal opinion they have definitely caught our attention and we have decided to ask them for a J-Link PRO in order to test it.
The J-Link PRO
The J-Link PRO is the fastest probe from SEGGER. It is equipped with Ethernet and this allow to reach incredible speed when Downloading code into Flash. This probe comes with a complete suite for debugging which include a GDB Server, a tool for flashing named J-Flash, a tool for memory inspection named J-Mem and a mechanism which allows unlimited flash breakpoints which is very useful while debugging complex software.
Most of the magic of SEGGER J-Link reside in its tools and firmware. Since I can remember I always had this passion to disassemble thinks! Under the hood an Altera Cyclone IV and a STM32F407 soldered on a great quality PCB.
To connect the target MCU there is a standard ARM 20-PIN JTAG connector while on PC side you can choose between an USB Type-B or an Ethernet RJ45. The probe is also equipped with three LEDs used to display data flow during debugging operations.
Other Available models
If we accept to renounce to certain features in exchange of a more affordable probe we can choose between a variety of J-Link spotting differences on the reference page. Aside the PRO version there are also the ULTRA+, PLUS, BASE; EDU and LITE versions.
The PRO is the only one equipped with Ethernet connectivity: this allow remote flash the Target. This version exhibits a very high speed when downloading code into RAM (up to 3.0 MBps) matched only by the ULTRA+, other probes instead exhibit a lower speed (up to 1.0 MBps).
All the version are able to download code into flash memory and inspect memory locations. The GDB server feature is also available for each version. Unlimited breakpoints are available only in PRO, ULTRA+, PLUS and EDU version.
Another interesting feature of J-Link is the J-Flash suite which allows to flash a big variety of internal and external memory. Unfortunately the full version of this software is available only for PRO, ULTRA+ and PLUS version.
Two versions have caught our attention: the J-Link EDU and the not listed J-Link Lite. The first one is very interesting for student which want to test J-Link potentiality with a very small price, about 60$. The second one is free and comes with certain development kit like the Infineon XMC. As we said before, if you already have a STM32 Nucleo Board and you don’t want to invest money it also possible to re-flash the on-chip debugger of the board with the J-Link Lite firmware.
Getting documentation and software
The SEGGER J-Link comes with a great User Manual, downloadable from their website.
All the software is downloadable as well on the download page under the voice J-Link Software and Documentation Pack. The package is available for Windows, Mac or Linux.
We are using J-Link from a couple of months. We had the chance to use J-Link PRO with a couple of Freedom development board from NXP (ex Freescale) and during the development of a firmware for a ST EVALKITST7580_1.
We encountered some difficulties during first steps since this probe comes with a lot of settings to be done but the default one were not suitable for our application. Indeed during a port on an Infineon XMC1100 we crashed against the default reset mode which by default performs certain operations which resulted in a wrong start up of the hardware.
By the way, the probe is well documented and, after the initial difficulties, we have find out the best configuration for our purposes. From this point the large set of tool provided by SEGGER has been highly appreciated during our long session for debugging. We have highly appreciated the unlimited breakpoints feature and the high speed during the upload of firmware. JMem works pretty well and the GDB Server is amazing: it offers a large set of commands and is easy to integrate in a generic IDE.
This probe supports a large number of MCUs and this candidate this tool to be the definitive probe ready to be adopted in many projects. We configured ChibiStudio, which is an eclipse-based toolchain, to use this probe through the SEGGER software and in the next article we will see step by step how to do this operation.