Компилируем BetaFlight из под Windows

Давно интересовал вопрос того, что нужно сделать чтобы собрать прошивку из исходников. Для сборки cleanflight есть инструкция на английском. Не переживайте, к счастью для сборки betaflight нужно проделать почти все те же действия.

Сперва нужно оговориться и пояснить, что собирать прошивку из исходников нужно только в том случае, если вы копались в коде. Во всех остальных случаях компилировать ничего не надо — можно просто скачать готовую прошивку вот тут (файл <название полётника>.hex) или выбрать нужную вам версию в самом конфигураторе Betaflight.

configurator

Если у вас еще осталось желание разобраться с этапами сборки, то тогда приступим. Для начала надо поставить программу cygwin64. Данная программа — эмулятор *nix терминала для windows. При установке выбрать следующие пакеты:

  • Devel/git
  • Devel/bash-completion
  • Devel/make
  • Devel/binutils
  • Editors/vim
  • Editors/vim-common (не обязательно)
  • Shells/mintty (должно быть выбрано)

Далее нам понадобится компилятор. Для сборки последней версии прошивки (betaflight 3.1.6) нужна версия gcc-arm-none-eabi-6_2-2016q4-20161216-win32.

После скачивания распаковываем архив поближе, например c:\dev\gcc.

gcc1

Далее нам надо указать путь к этой папке, что бы система знала, где лежит компилятор. Заходим в “Система->Дополнительные параметры системы->Переменные среды…”

system

В окне “Переменные среды пользователя…” нажимаем на кнопку создать и вводим

Имя переменной: PATH

Значение: %PATH%;C:\dev\gcc\bin

path

Либо откройте командную строку и выполните следующую инструкцию:

PATH %PATH%;C:\dev\gcc\bin

Еще нам необходим исходный код стабильной версии прошивки, для этого скачиваем архив со страницы релизов и распаковываем его в ту же папку c:\dev.

betaflight_src

Теперь открываем Cygwin, и прописываем следующие команды для компиляции проекта в hex файл:

cd /cygdrive/c/dev/betaflight-3.1.6
make TARGET=REVO

Вместо “REVO” подставьте нужный полетник. Доступные значения: ALIENFLIGHTF3, ALIENFLIGHTF4, ANYFCF7, BETAFLIGHTF3, BLUEJAYF4, CC3D, FURYF4, NAZE, REVO, SIRINFPV, SPARKY, SPRACINGF3, SPRACINGF3EVO, STM32F3DISCOVERY,

Если не указывать TARGET, то по дефолту оно будет равно NAZE.

Если все хорошо, то после небольшого ожидания появятся следующие строки:

Linking REVO
arm-none-eabi-size ./obj/main/betaflight_REVO.elf
text    data     bss     dec     hex filename
275180   11172   36304  322656   4ec60 ./obj/main/betaflight_REVO.elf
arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/betaflight_REVO.elf obj/betaflight_3.1.6_REVO.hex
make[1]: выход из каталога «/cygdrive/c/dev/betaflight-3.1.6»

Файл с прошивкой будет доступен по следующему пути:

C:\dev\obj\betaflight-3.1.6\betaflight_3.1.6_REVO.hex

Всё готово, теперь можно открыть конфигуратор и залить прошивку в контроллер.

один комментарий к записи

Добавить комментарий