Об этом проекте

Этот репозиторий является зонтичным проектом (Umbrella) для полного стека полетного контроллера с несколькими репозиториями. Через git submodule он включает 9 независимых подрепозиториев и централизованно управляет общей архитектурой, описанием проекта и способами интеграции. Подрепозитории развиваются независимо, а зонтичный проект фиксирует только снимки версий и документацию. Состав проекта: - flyctrl/: прошивка полетного контроллера (Rust no_std, включает EKF, PID, режимы полета, FDIR, восходящий канал MAVLink) - fly-simulater/: платформа физической симуляции (fly-sim-core, включает plant, controller, sensor, wind, SIL) - mcu_simulater/: симулятор MCU на уровне инструкций (Unicorn STM32F407 + виртуальная периферия I2C/UART/USB) - joc-base/: ядро RTOS + плата (STM32F407 minimal, база ELF прошивки, ветка dev) - joc-rtos-app-sdk/: SDK приложений (Rust no_std, логирование/устройства/задачи, буфер логов 180B) - mavlink-core/: кодирование и декодирование MAVLink (кадры/перечисления/COMMAND_LONG) - physics/: физический движок phy-sdk (опциональная зависимость fly-sim-core, реальная физика SIL) - groundctrl/: наземная станция (Rust) - joc-drvtest-app/: приложение для тестирования драйверов (отладка драйверов периферии) Быстрый старт: 1. Инициализация подмодулей: `git submodule update --init --recursive` 2. Сборка прошивки: `./scripts/build.sh real-sensors` или `./scripts/build.sh hil`, результат в /tmp 3. Полная регрессия одной командой: `./scripts/verify.sh` 4. Полная интеграция одной командой: `./scripts/integrate.sh` (все шаги) или отдельные шаги, например `unlock`, `firmware` и т. д. URL всех подмодулей используют SSH, поэтому для получения на другой машине требуются права SSH-ключа. При ошибке file transport можно использовать `git -c protocol.file.allow=always submodule update --init --recursive`. Соглашения о путях к результатам интеграции: сначала используются переменные окружения (например, JOC_BASE_ELF, JOC_APP_FLYCTRL и др.), затем стандартная раскладка зонтичного проекта (например, joc-base/build_hil/stm32f407_minimal.elf), и в последнюю очередь исторические пути. Процесс на новой машине: инициализация подмодулей → сборка прошивки → запуск полной интеграции. Снимки версий фиксируются зонтичным проектом. Коммиты подмодулей можно посмотреть через `git submodule status`; после продвижения необходимо зафиксировать новый снимок в зонтичном проекте, чтобы обеспечить воспроизводимость. Навигация по документации: - docs/architecture.md: общая архитектура (трехуровневый стек симуляции/потоки данных/ответственность) - docs/engineering.md: подробное описание функций каждого проекта - docs/integration.md: способы интеграции (виртуальная периферия/SIL/HIL/инъекция отказов/разблокировка и полет) - docs/postmortem-rtos-pendsv-fallback.md: разбор исправления дефекта fallback при пустой очереди PendSV - scripts/integrate.sh: скрипт интеграции одной командой - scripts/verify.sh: скрипт регрессии одной командой