Embedded Systems · Firmware · Simulation

Embedded Systems Laboratory

Инфраструктура и инструменты для разработки, сборки и симуляции embedded firmware.

Экосистема объединяет пять связанных проектов — от SDK для микроконтроллеров до пользовательского приложения управления симуляциями. Сайт рассказывает о назначении, архитектуре и взаимосвязях этих проектов.

Схема конвейера разработки: исходный код, микроконтроллер, сборка, симуляция и управление

Проекты экосистемы

Пять связанных репозиториев образуют инструментальный конвейер: от исходного кода прошивки до запуска и тестирования виртуальных устройств.

Embedded SDK

Модульная инфраструктура разработки прошивок: CMake-тулчейны, CMSIS, STM32 LL и YAML-конфигурации плат и устройств.

  • C
  • CMake
  • STM32
Подробнее →

Embedded Build System

Удалённая сборка firmware в Docker: клиент, WebSocket-сервер и артефакты с контрольными суммами.

  • Python
  • Docker
  • WebSocket
Подробнее →

Device Blink

Референсная прошивка на STM32F103C8T6: LED, UART-echo и конфигурация платы через compile-time defines.

  • C
  • STM32F103
  • Firmware
Подробнее →

Simulation Coordinator

Сервер симуляции: радиоэфир, шины, питание, UART-мосты и запуск виртуальных узлов прошивки.

  • Python
  • aiohttp
  • PostgreSQL
Подробнее →

Simulation Application

Flutter-приложение для управления симуляциями: мониторинг устройств, радио-топология, логи и группы питания.

  • Flutter
  • WebSocket
  • OAuth2
Подробнее →

Как это работает

Типовой сценарий использования экосистемы — от кода до симуляции.

  1. Разработка

    Исходный код прошивки пишется на C. Проект подключает Embedded SDK как submodule и использует YAML-конфигурации плат: периферия (LED, UART) описывается в конфигурации, а не в коде.

  2. Сборка

    Embedded Build System собирает проект локально или удалённо в Docker-контейнере: формируются .elf, .bin, .hex, отчёт о размере секций и контрольные суммы. Для запуска в симуляции проектом предусмотрена host-версия прошивки.

  3. Симуляция и управление

    Simulation Coordinator моделирует радиоэфир, шины и питание, а Simulation Application позволяет управлять симуляцией и наблюдать за устройствами в реальном времени. Виртуальным узлом в симуляции выступает host-сборка прошивки (HOST_BUILD): механизм её запуска предусмотрен в проекте, а слой mock-HAL для этой сборки развивается в составе SDK.

Принципы экосистемы

Модульность

Каждый компонент отвечает за свою задачу: SDK — за платформы, Build System — за сборку, Coordinator — за симуляцию, приложение — за управление.

Воспроизводимость

Сборка выполняется в Docker-контейнере, поэтому окружение и инструменты одинаковы на любой машине разработчика.

Конфигурируемость

Платы и версии устройств описываются YAML-файлами. Смена распиновки не требует изменения исходного кода прошивки.

Документация

Архитектура и сценарии использования документируются в самих репозиториях — рядом с кодом, которому они соответствуют.

Подробное описание слоёв и потоков данных — на странице «Архитектура».