Gcc

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

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

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

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

ARM Toolchain

Toolchain - набор необходимых пакетов программ для компиляции и сборки исполняемого кода из исходных текстов программ. Может дополнятся отладочными средствами. Для встраиваемых систем сюда же может входить программно-аппаратный комплекс загрузки бинарного кода в устройство. https://launchpad.net/gcc-arm-embedded Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors (Cortex-M0/M0+/M3/M4/M7, Cortex-R4/R5/R7). [[http://yagarto.de/|Yagarto]] и [[http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/#winarm|WinArm]] пресобранные пакеты для пользователей Windows. Lite releases no longer available =( [[http://www.codesourcery.com/gnu_toolchains/arm|CodeSourcery]] - наиболее развитой пакет на настоящий момент. Есть бинарные пакеты для различных ОС.

Objdump

Команда objdump входит в состав GCC и позволяет исследовать объектный (*.o, *.a, *.so, *.elf) файл сгенерированный компилятором/линковщиком GCC. Для разбора объектных файлов собранных под другие платформы используйте соответствующие команды из состава кросскомпилятора. Например: avr-objdump, arm-none-eabi-objdump. Примеры использования: objdump -t file.o - посмотреть таблицу символов. ToDo