The SEGGER J-Link EDU is identical to the more expensive J-Link BASE model except for the terms of use.
If you#39;re going to use your debugger strictly for personal, non-commercial projects, such as publishing open source designs that you#39;re not selling, then you should get this EDU version! It#39;s the same but significantly cheaper.
On the other hand if you#39;re making money, or plan to make money off your project, go and pick up the SEGGER J-Link BASE -JTAG/SWD Debugger.
Doing some serious development on any ARM-based platform, and tired of #39;printf#39; plus an LED to debug
A proper JTAG/SWD HW debugger can make debugging more of a pleasure and less of a pain. It allows you to program your devices at the click of a button, read or write memory addresses or registers on a live system, temporarily halt program execution at a given location or condition, and much more. Essentially, it#39;s a direct window into what#39;s going on inside your MCU at any given moment, giving you a level of access and control that#39;s not easy to replicate with other debugging methods.
Of the dozens (and dozens!) of debuggers out there (we have literally drawers full of them!), we chose the J-Link for a number of reasons:
- It#39;s USB based and uses a high-speed MCU internally, not an FTDI convertor like most low cost debugger. More debugging, less waiting!
- It support both JTAG (ARM7/9/11) and SWD (ARM Cortex), and has you covered for any core: ARM7/9/11, Cortex-A5/A8/A9, Cortex-M0/M0+/M1/M3/M4, Cortex-R4
- It#39;s toolchain, IDE and vendor neutral, so you only need to buy one tool for all of your ARM needs and be done with it forever:
- Support GDB-based debugging and flash programming on Linux, Windows and the Mac via the free GDB Server
- Supports most major IDEs, including Keil, IAR Atmel Studio, Crossworks for ARM
- It includes flash-programming algorithms for most MCUs, and Segger is very pro-active about updating their drivers to support the newest chipsets.
- It just works, and keeps on working, and it#39;ll be there for you in several years time.
The J-Link is fast. Stepping through breakpoints and reading memory addresses is quick, as is programming the flash memory on the chips. It#39;s real strength, though, is that it#39;s so vendor and tool neutral. Most chip vendors today provde low cost (or free) tools, but they also lock you into their chips and force you to accept the choice they#39;ve made for you. Segger#39;s J-Link is a nice change in that respect, since you can be reasonably certain it will work with any chip, in any major toolchain, and you#39;re free to change camp (or OS or IDE) without having to buy a new debugger every time.
Why Would I Want This
You can do a lot of basic debugging with just printf and an LED, and you may not need a HW debugger to get started, but once you start to working on more complicated projects, you hit a debugging wall pretty quickly.
Your chip might be ending up in the HardFault handler, for example, but without a debugger it can be very hard to trace back exactly what is causing the problems. A debugger allows you to set #39;breakpoints#39; in your code, where execution will temporarily stop, and you can check the value of memory or peripherals at that point in time, and then #39;single-step#39; through your code line by line, executing your program until you find the place that causes your fault. There#39;s a lot more to debugging than simple breakpoints, but you can often solve in a few minutes with breakpoints what would take much longer with printf and instrusive blocking mechanisms you insert into your code without a debugger.
Whether you#39;re using GDB Server (GNU Tools) or an IDE and a commercial toolchain, it#39;s also just a big convenience, since the J-Link can program the flash for you at the click of a button, reset the device, start execution, and then #39;halt#39; on main(). You can do all these steps yourself -- programming the device via free tools over UART or via a USB bootloader, etc. -- but when you need to do that 40-50 times a day, it can get old quick, and 15 seconds saved make a huge difference when debugging. You can program a small MCU and break on main in 2-3 seconds with a J-Link, which makes the tools more or less invisible, which is a good thing when you have other problems to worry about.
What is the J-Link EDU
The J-Link usually sells for a few hundred dollars up to four figures, but Segger makes a special, low-cost #39;EDU#39; version of ther J-Link available. It#39;s feature complete (including GDB Server support, unlimited flash breakpoints, etc.) and the same debugger you#39;d buy for professional use, but it has the following limitations (source: http://www.segger.com/j-link-edu.html):
You may use the J-Link EDU for non profit educational purposes only! Non-profit educational purposes means that you may not use the J-Link EDU and its J-Link software.
- direct or indirect in or for a profit organization or business purposes or other undertaking intended for profit
- direct or indirect in any other commercial environment (e.g. office)
- to develop, debug, program or manufacturer a commercial product (or parts thereof)
- to use it to either earn money or reasonably anticipate the receipt of monetary gain from it.
What does this mean Basically, if you#39;re making money (or plan to make money) off your project, you#39;ll need to order the full commercial version, or find a different debugger that suits your needs and budget better. But if you#39;re working on personal, non-commercial projects, such as publishing some open source designs you#39;re not selling yourself, you#39;re good. You don#39;t need to be a student, and you can even be a paid engineer during the week, using this on the weekend for personal non-commercial projects. As long are your intentions are non-commercial, the J-Link EDU is an excellent choice!
We do have the commercial version of the J-Link, please support SEGGER#39;s quality engineering and respect their generosity by purchasing the professional/commercial version of the J-Link, its still a great deal!
SEGGER J-Link EDU - JTAG/SWD Debugger (2:47)