Open Stream Deck

Сборка

Инструменты, скрипты сборки и тестов, а также файлы, которые создаёт сборка.

Прошивка собирается для ARMv7-M в режиме Thumb с программной плавающей точкой. Компилятор проекта ARM GCC, тесты запускаются на хосте.

Зависимости

На Ubuntu 24.04 или в WSL:

sudo apt update
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi gcc python3

Для обычной сборки Python-пакеты, SDK производителя и исходники приложения не нужны. Буквы заставки уже лежат в репозитории.

Скрипты

bash test.sh
bash build.sh

test.sh собирает тесты на хосте с AddressSanitizer и UndefinedBehaviorSanitizer, запускает их и проверяет Python-тесты. build.sh выполняет сборку ARM-образа и проверки ELF.

В Windows сборка идёт через WSL. Из PowerShell:

.\build.ps1 -Test

По умолчанию используется дистрибутив Ubuntu-24.04. Другой установленный дистрибутив задаётся параметром -Distribution.

Результаты сборки

ФайлНазначение
build/AjazzAKP153R-v1.0.0.binОбраз приложения для записи
build/firmware.jsonВерсия, размер, SHA256, CRC16 и адреса. Поле file содержит точное имя BIN
build/AjazzAKP153R-v1.0.0.elfELF с отладочной информацией
build/AjazzAKP153R-v1.0.0.mapКарта размещения секций

Каталог build/ исключён из Git. Сборка не записывает прошивку в устройство.

Проверки образа

tools/image.py проверяет границы сегментов ELF, таблицу векторов и адреса обработчиков в Thumb-режиме, затем экспортирует flash-сегменты и заполняет промежутки байтами FF.