The Arduino hardware actually isn’t all that special; it is just a very basic development board based on the Atmel AVR devices. It is the Arduino IDE and bootloader firmware that make it easier for nonprogrammers to work with it and get things running. It is, however, possible to completely forgo the Arduino IDE. It is a convenient application that takes care of a lot of the messy details of the software build process for the programmer, but those who want to work from the command line with just a text editor can do so without ever using an IDE.
In this chapter we will look at some examples of alternative ways to build programs for an Arduino, and how to use the AVR-GCC toolchain from the command line, without any assistance other than a makefile. We will also see how assembly language can be used “down on the metal” to wring the last bit of performance from an AVR MCU.
Just as there is more than one way to create executable code for an Arduino, there is more than one way to upload software into an AVR. In this chapter we will look at some of the ways to get the job done that don’t involve the Arduino IDE.
The Arduino IDE isn’t the only way to develop and load programs for an AVR MCU on an Arduino board. One Arduino programming alternative is the PlatformIO tool, which runs under Linux, Mac OS X, and Windows. It is a Python-based code builder and library manager that is executed from the command line. Another Python tool ...