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

Кросскомпилятор и набор инструментов для микроконтроллеров на базе ARM

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

Магическое название компилятора gcc-arm-none-eabi означает следующее:

  • gcc - название компилятора;
  • arm - архитектура процессора;
  • none - компилятор не вносит никакого дополнительного bootstrap кода от себя;
  • eabi - код соответствует спецификации EABI.

GCC ARM Embedded

Самый простой способ, это использовать готовые бинарные сборки для своей операционной системы. Доступны сборки для Linux, Mac, Windows.

Сборка уже все необходимые инструменты для компиляции ваших приложений а так же адаптированную для встраиваемых устройств стандартную библиотеку функция newlib.

TODO как распаковать и прописать пути.

Ubuntu

Если у вас Ubuntu 12.04/14.04/15.10/16.04 32/64-bit, то вы можете воспользоваться PPA репозиторием.

Debian

В свою очередь Debian начиная с Jessie содержит в своих репозиториях пакетов сборку arm-none-eabi-gcc. Версии пакетов не самые свежие, но как правило вполне достаточные для работы.

Установить полный фарш можно командой:

sudo apt-get install -t jessie-backports gcc-arm-none-eabi binutils-arm-none-eabi gdb-arm-none-eabi libnewlib-arm-none-eabi libnewlib-dev libstdc++-arm-none-eabi-newlib

Дополнительно можно установить документацию по newlib:

sudo apt-get install -t jessie-backports libnewlib-doc

Обратите внимание на параметр -t jessie-backports. В моём случае он означает, что пакеты необходимо устанавливать из репозитория backports, там они новее, чем в stable версии.

 
comments powered by Disqus