Собираем toolchain для STeamer
Собрать тулчейн для STeameR не просто, а очень просто. Для этого нам понадобится UNIX/MAC PC машина и набор сборочных скриптов summon arm toolchain
Перед началом сборки почитайте README: в нем есть список пакетов, которые должны быть установлены в системе.
Для сборки просто запустите summon-arm-toolchain и подождите когда он закончит.
После окончания сборки по пути ${HOME}/sat будет лежать свеженький тулчейн, готовый к употреблению.
Данный тулчейн подойдет для большинства Cortex-M3 устройств. Но из библиотек для работы с перефирией там только libopencm3.
Построен на базе:
- binutils-2.23.1
- newlib-2.0.0
- gcc-4.7.2 или gcc-4.7-2013.01 от Linaro
- gdb-7.5.1 или gdb-7.5-2012.12-1 от Linaro
- OpenOCD-0.6.1
- libcmsis-v1.10-4
- libstm32-v3.0.0-2
- libstm32usb-v3.0.1-1
- libopencm3
Но если стандартные настройки нас не устраивают…
summon-arm-toolchain поддерживает следующие конфигурационные параметры:
- TARGET — arm-none-eabi по умолчанию. Можно сменить на arm-elf если очень хочется, но arm-elf уже устарел и его обещают убрать.
- PREFIX — ${HOME}/sat по умолчанию. Путь, куда будет установлен тулчейн.
- DARWIN_OPT_PATH — /usr/local. Путь к MacPorts или Fink. Используется при сборке под Mac OS
- SUDO — по умолчанию не установлен. Но если надо установить тулчейн туда, где прав обычного пользователя не хватает — впишите «= sudo»
- USE_LINARO — Использовать или нет патчи от Linaro. По умолчанию — использовать.
- OOCD_EN — собирать или нет OpenOCD. По умолчанию — собирать. Но если у вас нету JTAG адаптера — сборку OpenOCD можно отключить
- OOCD_GIT — пусто по умолчанию. Служит для выбора конкретной версии исходников OpenOCD
- LIBSTM32_EN — по умолчанию 0. Если включить — будет собрана библиотека от ST
- LIBOPENCM3_EN — по умолчанию 1. Включает/отключает сборку опенсорсной библиотеки libopencm3 для Cortex-M3
- DEFAULT_TO_CORTEX_M3 — по умолчанию 0.
- CPUS — по умолчанию пусто. Но если хочется распаралелить make не на все процессоры — можно указать количество CPU, которое можно использовать.
Но в большинстве случаев можно ничего не настраивать и использовать out-of-the-box.
странно, ссылка на summon arm toolchain не работает…
попробовал собрать по MAC (10.7.4)…
не могу пока сказать, что это возможно out-of-the-box ;)
но практически так
у меня macports ставит в /opt/local, поэтому пришлось DARWIN_OPT_PATH установить в /opt/local.
дальше всё проходит нормально, но libopencm3 не хочет собираться по причине того, что
падает скрипт scripts/irq2nvic_h с криками:
Traceback (most recent call last):
File «./scripts/irq2nvic_h», line 32, in
import yaml
ImportError: No module named yaml
установка py-yaml ничего не даёт, почему-то python категорически отказывается видеть
его в списке модулей: help(‘modules’) не выводит yaml
но самое главное достигнуто — компилер собран!
нашёл, в чём проблема. она py-yaml был установлен для python 2.4, а сам python в системе по дефолту 2.7. поправил — заработало =)