BIVBlog #40: Microcontroller Compiler Suites

With the programmer hard- and software taken care of in the previous episode, the last components missing are the compiler suites for the various platforms. Once we’ve taken a look at the GCC variants for the Atmel AVR and Texas Instruments MSP430 and the SDCC for the Microchip PIC families of microcontrollers, our set of tools specific to microcontroller programming is complete.

Table of Contents

00:00:30 Cross compiling
00:03:00 Recap of ordinary compilation and common compiler options with GCC
00:05:10 AVR-GCC and the Atmel AVRs, and microcontroller specific options to GCC
00:09:10 MSP430-GCC and the TI MSP430s, and the community vs. TI supported versions
00:13:05 SDCC and the Microchip PICs
00:13:15 — Problems with and limitations of SDCC for PIC
00:15:00 — Compiler options with SDCC
00:19:00 What’s left to do: Writing a Makefile (in the next episode)


bivblog40-mcu-compilers-20160808-160825.tar: The source files used in this episode.


BIVBlog #37: Setting up the development toolchain, including SDCC


Long term IPv6 evangelist/book author/trainer/consultant and generic Unix guy (*BSD, Linux, Solaris, and about a dozen more).


  1. I like your Unix-style approach to programming microcontrollers, and I want to adapt it to working with ARM hardware. I have an idea for an optical networking project and thought PJRC Teensy 3.2 might suffice; after some playing around, maybe not, because it doesn’t have an Ethernet peripheral. In any case, I want to have greater control over LED blinking, doing so at a high speed (perhaps with buffers and interrupts), and I think libraries would get in the way. I’ve had a great deal of trouble adapting the arm-none-eabi toolchain to work with a Makefile, and the myriad examples on the net are complicated, with lots of path dependencies that nobody seems to encapsulate. Apparently some toolchain packages offered by Linux distros do not work.

    • Benedikt Stockebrand

      Hi Karl,

      glad you like it. So far I haven’t got around to play with ARM hardware, and in fact I’ve been way too busy since February to do anything much on the BIVBlog either. But when it comes to makefiles, maybe episode #41 gets you started. Makefiles aren’t exactly the easiest tool to learn, but they are tremendously useful in the long run.



Leave a Reply

Your email address will not be published.