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!