Автономизация Ada-проекта - сборка без Alire и собственный хост-загрузчик BE-U1000
Автономизация Ada-проекта - сборка без Alire и собственный хост-загрузчик BE-U1000 Ресурс: https://gitverse.ru/ksiby/host_loader Цель этапа 1 Портирование прошивки BE_U1000 на Ada (GNAT + Alire) От мигающего светодиода на C к мигающему светодиоду на Ada Что мы хотели получить. Собирать и запускать на микроконтроллере BE_U1000 (ядро BMCU, архитектура RV32) программы на языке Ada, при этом: • не отказываясь от существующего C-окружения производителя: драйверов BASIS, HAL, BSP-конфигурации EVU_BA_2_5, стартапа и линкер-скрипта из работающего C-проекта; • сохранив в рабочем состоянии родной SDK-тулчейн (он нужен для поддержки фирменных расширений ядра); • получив воспроизводимую, управляемую сборку через стандартные инструменты Ada-экосистемы (Alire + GPRbuild). Критерий успеха был выбран предельно конкретный: прошивка, в которой главный код — Ada-процедура, а HAL — тот же C, мигает светодиодом на плате. Это классический «первый вертикальный срез» порта: он проверяет сразу компилятор, рантайм, стартап, линкер-скрипт и связку Ada↔C. Цель этапа 2 Синхронизация Ada-проекта с EFLASH-сборкой (led_ada2021) После переноса C-проекта на копию SDK L:\BE-U1000_EFLASH и уточнения ABI ilp32f (выяснено из эталонной мапы SDK) возникла задача: согласовать Ada-проект с этими решениями, чтобы оба трака собирались по одним правилам из одного SDK-дерева. Критерий успеха: 1. Сборка Ada-проекта проходит без ошибок с ABI ilp32f. 2. Мапа содержит эталонную картину eflash-заголовка: прыжок 0x300006f на 0xa0000000, magic 0xbef5262 на 0xa0000020, _start на 0xa0000030, __HEADER_COPY_SIZE__ ненулевой. 3. Половина пути к критерию уже пройдена: светодиод на плате мигает Цель этапа 3 Перевести Ada-проект с сборочного трака «Alire (alr build / alr exec)» на полностью автономный трак: только gprbuild из командной строки и GNAT Studio. Alire больше не должен участвовать ни в разрешении зависимостей, ни в запуске компилятора, ни в поставке рантайма. Верификация. Сборка без Alire прошла чисто: в build.log — компиляция модулей рантайма ([Ada] a-elchha.adb), сборка библиотеки ([gprlib] / [archive] libgnat.a), биндинг и линковка. Сводка памяти: ROM 1489 B (0,57 % от 256 KB), RAM 0 B. Цель этапа 4 Заменить ручной сценарий прошивки (ExtraPuTTY: ввод команд монитора, затем Files Transfer → Xmodem) автоматизированным хост-загрузчиком с собственным выполнением протокола ROM-загрузчика BE-U1000 — на Ada, собираемым нативным GNAT 2021. Критерий готовности: прошивка образа bin\main.bin в eFlash и запуск одной командой, с сохранением поэтапного режима для обучения и отладки.
Название:
Автономизация Ada-проекта - сборка без Alire и собственный хост-загрузчик BE-U1000
Категория:
Технологии и интернет