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!
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, or even use Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for MakeCode, CircuitPython, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
What makes it the gold standard?
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!
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.