Gcc

Компилируем для ARM

Как известно, программный код на языке выского уровня сам в микроконтроллер не полезет, его требуется предварительно скомпилировать в машинный код (мы не берём интерпретируемые языки, но в этом случае в микроконтроллер должен быть уже прошит интерпретатор). Для микроконтроллеров на базе ядра ARM/Cortex можно воспользовать кросскопилятором gcc-arm-none-eabi.

Отладка с помощью GDB

Для отладки микроконтроллерных устройств обычно применяются программно-аппаратные решения. К примеру для МК с ядром ARM это может быть связка J-Link((аппаратный отладчик по интерфейсу JTAG)) - OpenOCD((программная прослойка, между отладчиком и GDB)) - собственно сам ARM-GDB.