July 25, 2015 AT 6:15 am

AdaLink: Cross Platform ARM Debug Wrapper

Screen Shot 2015-07-25 at 17.11.13

We’re big fans of GNU/GCC here at Adafruit. Thanks to the prevalence of ARM in embedded Linux and Android, recent versions of GCC produce excellent code for ARM processors, and GCC works great with a makefile cross-platform when compiling your code. Unfortunately, the HW debuggers you use to flash your small embedded ARM MCUs are a different story altogether, and the tools are all over the map and often Windows only, or a pain to build and configure!

Enter AdaLink, an internal Python tool we developed to abstract away the platform and OS specific details behind the two ARM HW debuggers we use and sell: The Segger J-Link (the gold standard of ARM HW debuggers) and the low cost STLink/V2.

If you want to flash your Bluefruit LE UART Friend with your own custom firmware using either a J-Link or STLink/V2 without having to worry about platform specific details, you can run the following command from the command-line: adalink nrf51822 –programmer jlink –wipe –program-hex bootloader.hex

You can also get some basic info about the modules from the command line with the following command: adalink nrf51822 –programmer jlink –info

The list of MCUs supported is currently limited to chips we’re using internally, but it’s easy to expand the tool, and it plays well with Linux, Windows and OS X, and if you are using and STLink/V2 you can even use Raspian on a Raspberry Pi (unfortunately no JLink binaries are available from Segger for ARM Linux).

Have a look at the AdaLink Readme on github for details on setting the tool up and using it, as well as some details on extending it!

Check out all the Circuit Playground Episodes! Our new kid’s show and subscribe!

Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Learn resistor values with Mho’s Resistance or get the best electronics calculator for engineers “Circuit Playground”Adafruit’s Apps!

Maker Business — Undercover in an iPhone Factory (video)

Wearables — Go with silicone

Electronics — Shift away from basic arithmetic

Biohacking — Recording and Biohacking a 100 Mile Run

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !


  1. What makes it the gold standard?

  2. There are a number of points that I think ensure you’ll find a J-Link on the bench of a large percentage of professional engineers in the ARM/embedded space. Segger is almost always the first out the door with support for new chips (which involves a decent amount of effort on their part), it generally ‘just works’ and is fast and reliable, and perhaps most importantly as a company they are generally IDE neutral and you can use their debuggers with almost any professional or open source IDE or toolchain or platform out there (they provide tools for Windows, OS X and Linux, including GDB Server for GNU based setups). There are other options out there, of course, but Segger has always been the gold standard where I’ve worked, and they work hard to keep the solid reputation thay have in the debugger market.

    You’re free to disagree, of course, and please post up alternatives for customers below if there’s something else you think is more appropriate or performs better or hits an easier price/performance ratio, etc. As with most engineering tools, there’s a spectrum of budgets, needs and performance requirements, and Segger is probably on the higher end of the price/performance scale and may not be what everyone needs. Personally, though, I couldn’t live without mine!

  3. There isn’t really one definitive ARM forum out there other than from ARM itself, and things are generally organised more around specific silicon vendors. NXP users will tend to congregate on forums like lpcware.com, ST users on their own forums, etc. General ‘ARM’ forums are harder to find, so it’s best to find a chip family that matches your needs and then look at the forum(s) for that family. ST and NXP are the two main chip families you come across for ARM most of the time, so those are the best place to start in my opinion.

Sorry, the comment form is closed at this time.