A maioria dos fabricantes de microcontrolador oferece algum tipo de toolchain de desenvolvimento livre ou IDE com seus produtos de silício. Normalmente, é aleijado, fonte fechada e um grande download. Isso é muito inconveniente quando você quer ter firmware que seja fácil de construir e distribuir. Eu encontrei muitas dessas caixas de ferramentas para serem usadas e exigindo software de origem fechada para construir firmware de código aberto parece menos do que desejável.
É possível criar código para a maioria dos microcontroladores usando ferramentas de linha de comando. Você precisará de um compilador, bibliotecas de fabricante e arquivos de cabeçalho do fabricante do dispositivo e algum método de interromper o dispositivo. Muitas dessas ferramentas são de código aberto, o que permite ter uma roda de ferramentas de código aberto que constrói seu projeto.
Configurar essas ferramentas pode ser um pouco complicado, então estou construindo um conjunto de modelos para facilitar. Cada modelo tem instruções sobre como configurar a chafarina de ferramentas, um makefile para criar o firmware e o código de amostra para se levantar e funcionar rapidamente. É todo domínio público, então você pode usá-lo para o que quiser.
Atualmente há suporte para AVR, MSP430, Braço Stellaris e STM32L1. Mais dispositivos estão nos trabalhos, e as ideias são bem-vindas. Espero que isso ajude as pessoas a começar a construir firmware que é fácil de construir e distribuir com projetos.