Собираем toolchain для STeamer

toolchainСобрать тулчейн для 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 поддерживает следующие конфигурационные параметры:

  • TARGETarm-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.

3 комментария

  1. Павел Курочкин:

    странно, ссылка на summon arm toolchain не работает…

  2. Павел Курочкин:

    попробовал собрать по 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. поправил — заработало =)