Create CHANGELOG.md

This commit is contained in:
Dmitry Akimov 2026-05-13 23:07:06 +03:00
parent 22f98c311a
commit a9a207ab6c

435
CHANGELOG.md Normal file
View file

@ -0,0 +1,435 @@
# Журнал изменений: `tft_manufacture_test`
Репозиторий: https://github.com/OSabuser/tft_manufacture_test.git
Отслеживаемая ветка: `dev`
Базовый диапазон: 2026-03-05 .. 2026-05-08, 52 коммита
Базовый HEAD: `22f98c311a4564d8f18ed72d11635bf908046b1e`
Версия формата: `strict-2026-05-13`
Этот журнал фиксирует только смысловые инженерные изменения. Формат основан на подходе Keep a Changelog и адаптирован под embedded firmware-репозиторий, где документация, тесты, HIL, CI и изменения vendor-SDK являются важными сигналами состояния проекта.
## Политика формата
Каждая будущая запись должна иметь такую структуру:
```md
## [Не выпущено] или [ГГГГ-ММ-ДД] — короткое название
Диапазон: `old_sha..new_sha`
Сравнение: https://github.com/OSabuser/tft_manufacture_test/compare/old_sha...new_sha
### Кратко
- Один-два содержательных пункта о том, что изменилось и почему это важно.
### Добавлено
- Новые возможности, модули, тесты, документы или инструменты.
### Изменено
- Поведение, архитектура, сборка, интерфейсы или крупные переработки документации.
### Исправлено
- Исправления ошибок, сборки, тестов и регрессий.
### Тесты
- Host-тесты, HIL-тесты, firmware-test модули, фикстуры, test runners и изменения покрытия.
### CI
- GitHub Actions, локальные CI-скрипты, self-hosted/HIL runners и изменения статуса workflow.
### Документация
- README и изменения архитектурных/protocol/how-to документов, которые влияют на понимание проекта.
### Удалено
- Удаления, имеющие практический смысл.
### Отфильтрованный шум
- Форматирование, чистые перемещения, vendor-импорты или generated churn, которые намеренно не считаются продуктовым изменением.
```
Пустую категорию можно опускать, если в ней нет смысловой информации. Не добавлять raw commit spam, статистику строк, длинные списки файлов или переименования, если они не меняют сборку, тестирование, документацию или использование проекта.
## [Не выпущено]
Диапазон: после `22f98c311a4564d8f18ed72d11635bf908046b1e`
### Кратко
- После базового среза новые изменения ещё не обрабатывались.
### Что отслеживать
- Проверять, остаётся ли `.github/workflows/ci.yml` только сборочным workflow через `just ci::build` или начинает запускать host-тесты.
- Отслеживать появление self-hosted runner, регулярных аппаратных прогонов или отчётов по HIL.
- Проверять новые firmware-test модули в `firmware/test/src/tests/` и синхронные обновления протокола/документации.
- Следить за развитием BSP: MQS, RGB, bootloader или `tft_app`.
- Отслеживать локальные патчи поверх vendor SDK, которые нужно вести отдельным patch log.
## Базовый срез — 2026-05-13
Диапазон: вся история репозитория от initial commit до `22f98c311a4564d8f18ed72d11635bf908046b1e`
### Кратко
- Репозиторий представляет собой firmware-монорепозиторий для платы на базе NXP MIMXRT1052CVJ5B. Он охватывает manufacturing-test firmware, планируемые bootloader/application firmware, BSP-модули, host tooling, HIL tooling и документацию.
- К базовому срезу в проекте уже есть полноценный BSP-слой, двухуровневая стратегия тестирования, USB-CDC архитектура тестовой прошивки, GitHub Actions CI и обширная инженерная документация.
### Текущая архитектура
- BSP-модули на момент базового среза: `led`, `tick`, `uart_host`, `opto`, `can`, `button`, `usb_cdc`, `sdram`, `qspi_flash`, `sd`, `display`.
- Host-тесты используют Unity/fff-подобные моки и инструменты, рассчитанные на devcontainer.
- HIL-тесты используют pyOCD, pyserial, pytest и поддержку M5StampPLC.
- Командный путь firmware-test состоит из USB-CDC ACM CLI, бинарного протокола, `test_runner` и отдельных firmware-side test modules.
- Документация покрывает архитектуру разработки, прошивку, отладку, HAB, HIL, host-тесты и поведение протокола.
### Состояние CI
- GitHub Actions уже есть и собирает проект внутри devcontainer.
- Видимый пробел: host unit tests и HIL tests пока не входят в GitHub Actions workflow.
## [2026-05-08] — Display test module и выравнивание документации
### Кратко
- Базовый срез заканчивается тем, что поддержка display становится частью и BSP, и manufacturing-test firmware.
- README и инженерные документы были синхронизированы между несколькими модулями, поэтому это documentation-heavy, но смысловое изменение состояния проекта.
### Добавлено
- Реализован `bsp/display` с API, исходниками и интеграцией в сборку.
- Добавлен `firmware/test/src/tests/test_display.c` как firmware-side test module для display.
### Изменено
- README нескольких BSP-модулей и manufacturing-test firmware приведены к более единому стилю.
- `docs/DEV_ARCH.md`, документы по прошивке/отладке и HIL-гайды обновлены под актуальную структуру проекта.
- `just/ci_workflow.md` расширен дополнительными деталями CI workflow.
### Документация
- Документация по display, SD, CAN, button, USB-CDC и firmware-test получила содержательные обновления, а не только форматирование.
### Удалено
- Удалён `bsp/qspi_flash/REFACTORING.md`, так как временный план потерял актуальность.
### Отфильтрованный шум
- Чистая нормализация стиля в документации не учитывалась как отдельная feature, если она не меняла содержание или проектные инструкции.
## [2026-05-07] — USD/SD test flow
### Кратко
- SD/MMC testing перешёл от BSP/middleware-работ к firmware-test module с обновлением протокола и тестовой документации.
### Добавлено
- Добавлен `firmware/test/src/tests/test_usd.c`, затем доведён до usable SD/MMC test module.
### Изменено
- `firmware/test/src/main.c` упрощён по мере модульного оформления test modules.
- `docs/testing/PROTOCOL.md`, `firmware/test/src/tests/README.md` и `firmware/test/PLAN.md` обновлены под USD/SD test coverage.
### Тесты
- Firmware-side SD/MMC testing стал видимым отдельным модулем, хотя базовый срез всё ещё требует отслеживать стабильное HIL-покрытие SD.
## [2026-05-06] — SD card и FatFS integration
### Кратко
- Поддержка SD card и FatFS вошла в BSP и firmware-test stack.
- NXP SD middleware был пропатчен, что создаёт будущую точку контроля для vendor SDK drift.
### Добавлено
- Добавлен `bsp/sd` с API, реализацией, README и CMake-интеграцией.
- Добавлены `firmware/test/fatfs` и `port/fatfs/sd` для подключения FatFS к SD BSP.
- Добавлены generated SDMMC configuration files.
### Изменено
- SDK SD middleware и SDMMC host code изменены для поддержки smoke-test path.
- Clock и pin configuration скорректированы под SD/MMC.
### Тесты
- Появился SD smoke-test, но стабильное HIL regression coverage ещё не закреплено в базовом срезе.
### Отфильтрованный шум
- `project_tree.txt` и `sdk/sdk_tree.txt` рассматривались как artifacts состояния репозитория, а не как функциональные изменения.
## [2026-04-23] — Добавлен GitHub Actions CI
### Кратко
- CI стал реальным: проект получил GitHub Actions workflow, который собирает проект внутри devcontainer.
- Workflow ориентирован на сборку; host tests и HIL tests остаются будущей работой.
### Добавлено
- Добавлен `.github/workflows/ci.yml` с triggers на push, PR и manual dispatch.
- Workflow собирает devcontainer image, запускает `just ci::build` и загружает build tree как artifact.
- Добавлен `just/ci_workflow.md` с описанием CI flow.
### Изменено
- `just/ci.just` скорректирован под CI build path.
### CI
- CI покрывает воспроизводимость containerized build.
- CI пока не запускает host unit tests.
- CI пока не запускает HIL tests, которым требуется подключённое железо или self-hosted runner.
### Удалено
- Удалён `.clang-tidy` override для generated code из `bsp/generated`.
## [2026-04-20 .. 2026-04-22] — SDRAM и QSPI firmware-test modules
### Кратко
- Manufacturing-test firmware получил memory-oriented test modules для SDRAM и QSPI Flash.
- QSPI support появился и как BSP module, и как firmware-side test.
### Добавлено
- Добавлены API и реализация `bsp/sdram`.
- Добавлен `firmware/test/src/tests/test_sdram.c`.
- Добавлен `bsp/qspi_flash` с API, реализацией и README.
- Добавлен `firmware/test/src/tests/test_qspi.c`.
- Добавлен `firmware/test/src/tests/README.md` с описанием firmware-side test modules.
### Изменено
- `firmware/test/src/main.c` обновлён для интеграции новых test modules.
### Тесты
- SDRAM и QSPI вошли в firmware-test command model.
### Документация
- Документация по test modules начала описывать растущий firmware-test suite.
## [2026-04-17] — Binary protocol, test runner и hardware documentation
### Кратко
- Manufacturing-test firmware перешёл от простого CLI к protocol-driven test runner architecture.
- Hardware reference documentation существенно расширилась.
### Добавлено
- `protocol.c/.h` ввели binary protocol для управления тестами.
- `test_module.h` и `test_runner.c/.h` ввели modular firmware-test runner.
- Добавлены host tests для protocol и runner behavior.
- `docs/testing/PROTOCOL.md` описал binary protocol.
- Добавлены hardware PDFs и board/display reference materials в документацию.
### Изменено
- `firmware/test/README.md` сильно переписан под новую архитектуру.
- Existing CLI host tests были расширены.
### Тесты
- Host coverage расширился на protocol, runner и CLI behavior.
### Удалено
- Старые planning/architecture artifacts в `firmware/test` и HIL refactor notes удалены после замены новой структурой.
### Отфильтрованный шум
- Большие добавления hardware PDF сведены по назначению, без перечисления каждого файла.
## [2026-04-07 .. 2026-04-09] — USB-CDC CLI и priority queue
### Кратко
- Test firmware получил modular USB-CDC CLI.
- Добавлен priority queue utility и host coverage для него.
### Добавлено
- `firmware/test/src/cli.c` и `cli.h` ввели отдельный CLI module.
- `tests/host/cli/test_cli.c` добавил host coverage для CLI behavior.
- Добавлен `utils/prio_queue` с README и большим host test.
- Появилась placeholder structure для `bsp/display`.
### Изменено
- Старый monolithic `firmware/test/main.c` path заменён на modular source layout.
- Добавлены firmware-test planning docs вокруг CLI/protocol roadmap.
### Тесты
- Host tests покрыли CLI и priority queue.
## [2026-04-03 .. 2026-04-06] — USB-CDC stack и HIL coverage
### Кратко
- USB-CDC ACM стал реальной BSP capability и был подключён к HIL validation.
- HIL configuration и documentation были уточнены вокруг нового USB path.
### Добавлено
- Реализован `bsp/usb_cdc` с API, descriptors, Chapter 9 handling и hardware wrappers.
- SDK USB middleware integration добавлена в сборку.
- `tests/target/hil_usb_cdc` и `tools/hil/05_test_usb_cdc.py` добавили USB-CDC HIL coverage.
### Изменено
- Обработка HIL configuration была отрефакторена, `.env.example` получил новые переменные.
- `bsp/usb_cdc/README.md` переписан с фокусом на API documentation.
### Тесты
- USB-CDC вошёл в numbered HIL suite после UART, opto, CAN и button.
### Документация
- HIL docs, включая bench, creation guide, fixtures и how-to, были обновлены.
## [2026-04-01 .. 2026-04-02] — Clock, pin и MPU setup
### Кратко
- Board generated files стали полнее: в firmware base вошли clock, pin и MPU configuration.
### Добавлено
- Добавлены generated clock и pin-mux configuration files.
- Добавлен `TFT_Board.mex` как project state NXP Config Tools.
- Появились initial empty `bsp/sdram` placeholders.
### Изменено
- Board startup/configuration получил MPU initialization.
- Linker scripts скорректированы для FlexSPI NOR и RAM layout.
- `firmware/test/main.c` упрощён вокруг нового initialization path.
## [2026-03-30 .. 2026-03-31] — CAN и button BSP с host/HIL tests
### Кратко
- CAN и button support стали полноценными BSP modules с host и HIL validation.
- HIL tests были пронумерованы в ordered suite.
### Добавлено
- Добавлен `bsp/can` с API, реализацией, README и mocks.
- Добавлены host tests и HIL target/test code для CAN.
- Добавлен `bsp/button` с API, реализацией и README.
- Добавлены host tests и HIL target/test code для button.
### Изменено
- HIL pytest files переименованы в ordered sequence: UART, opto, CAN, button.
- HIL documentation обновлена по мере конкретизации test suite.
### Тесты
- CAN и button получили host test coverage.
- CAN и button получили HIL coverage.
### Удалено
- Удалён `bsp/can/PLAN.md` после переноса полезного содержания в README.
## [2026-03-26 .. 2026-03-28] — M5StampPLC HIL bench и fixture documentation
### Кратко
- HIL стал больше чем pyOCD prototype: появились M5StampPLC support, power/control helpers и fixture documentation.
### Добавлено
- Добавлена поддержка M5StampPLC в `tools/hil`, включая agent/CLI logic и MicroPython firmware assets.
- HIL support code реорганизован в M5-specific helpers.
- `tests/target/hil_opto` и `tools/hil/test_opto.py` добавили opto HIL coverage.
- `docs/testing/hil/HIL_FIXTURES.md` описал pytest fixtures для HIL.
### Изменено
- `just/host.just` и `tools/hil/conftest.py` существенно расширены под HIL workflows.
- Документация реорганизована в более понятные иерархии hardware, MIMXRT1052 и testing.
### Тесты
- Opto inputs получили HIL-level validation.
### Удалено
- Старые locations CMake/test guides заменены новой иерархией `docs/testing`.
### Отфильтрованный шум
- Перемещения PDF и документов учтены как изменение структуры документации, а не как отдельное content change для каждого файла.
## [2026-03-23] — Logging infrastructure и BSP opto
### Кратко
- Появились logging infrastructure и opto input BSP вместе с host coverage.
### Добавлено
- `port/log` и `utils/log` ввели logging abstractions и UART-oriented logging support.
- Добавлены host tests для logging behavior.
- Добавлен `bsp/opto` с API, реализацией, README, GPIO mocks и host tests.
### Тесты
- Host coverage расширился на logging и opto behavior.
### Удалено
- Корневой `TODO.md` удалён после переноса планирования в другие места.
## [2026-03-18 .. 2026-03-20] — Первый HIL skeleton и flashing/debug docs
### Кратко
- Проект получил первый HIL skeleton и target-side UART validation path.
- Flashing и debugging tooling стали документированными и scriptable.
### Добавлено
- Добавлен `tools/hil` с pytest/pyOCD/pyserial-oriented utilities.
- `tests/target/host_uart` предоставил target firmware для UART HIL validation.
- `tools/host/flash_swd.py` добавил SWD flashing support.
- Добавлены `docs/HOW_TO_DEBUG.md`, расширенные flash docs и tool README.
### Изменено
- Main README и development architecture docs расширены вокруг host/container workflow и testing.
- Добавлены host и HIL test creation guides.
### Тесты
- Появился первый UART HIL path.
### Удалено
- Temporary flash logs удалены после окончания диагностической пользы.
## [2026-03-16 .. 2026-03-17] — Первые BSP modules и host test infrastructure
### Кратко
- Репозиторий получил первые concrete BSP modules и host-test layout.
### Добавлено
- Добавлены `bsp_led` и `bsp_tick` с API, реализацией и README files.
- `bsp/uart_host` добавил LPUART1/MCU-Link VCOM support с API, реализацией, README, mocks и host tests.
- Введены shared BSP status codes.
- Добавлен `utils/ring_buffer`.
- Добавлен `tests/host` с mocks и tests для LED, ring buffer и timeout behavior.
- `TODO-HIL.md` зафиксировал initial HIL plan.
### Тесты
- Host testing начался с Unity/fff-style mocks и isolated test directories.
## [2026-03-13 .. 2026-03-15] — Draft архитектуры manufacturing-test firmware
### Кратко
- Архитектура manufacturing-test firmware была задокументирована до последующей реализации protocol/runner.
### Добавлено
- `firmware/test/README.md` и `firmware/test/arch.svg` описали первый architecture concept.
- BSP и USB-CDC README зафиксировали early design intent.
### Изменено
- `bootstrap.sh` был упрощён.
### Удалено
- Ранняя VS Code launch configuration удалена при cleanup bootstrap.
## [2026-03-10 .. 2026-03-12] — Project environment, BSP base и HAB flow
### Кратко
- Проект перешёл от пустого scaffold к buildable embedded workspace с generated board support, HAB assets и containerized tooling.
### Добавлено
- Добавлен board support для MIMXRT1052: startup code, generated config, linker scripts и FlexSPI NOR-related assets.
- Добавлен HAB signing/configuration flow для app, bootloader и firmware-test images.
- Добавлены formatting/lint/editor configuration.
- Добавлены devcontainer, Dockerfile, CMake presets, VS Code tasks и bootstrap scripts.
- `Justfile` стал entry point для build и host automation.
- Добавлена development architecture и CMake hints documentation.
### Изменено
- Generated NXP Config Tools content перенесён из `bsp/board` в `bsp/generated`.
- Логика `Justfile` разделена на modules под `just/`.
- Добавлена flashing documentation, bootstrap logic переработана.
### Документация
- Early docs явно отмечали, что CI и tests ещё не покрыты.
## [2026-03-05] — Initial repository scaffold
### Кратко
- Репозиторий инициализирован с базовой metadata и README placeholder.
### Добавлено
- Добавлены `.gitattributes`, `.gitignore` и начальный `README.md`.
## Отфильтрованный шум базового среза
Следующие классы изменений были просмотрены, но намеренно не развёрнуты в подробные записи changelog:
- Merge commits без смысловых content changes.
- Дублирующиеся или неинформативные commit subjects, где значимость определялась по diff, а не по title.
- Чистое форматирование или переносы строк в документации.
- Перенумерация HIL tests, когда поведение не менялось.
- Bulk vendor SDK imports и generated code churn, кроме случаев, где они влияли на локальные patches или build effects.
- Перемещения PDF и datasheets, кроме случаев изменения структуры документации.
## Контракт еженедельного мониторинга
Регулярная еженедельная проверка должна:
- Сравнивать предыдущий сохранённый SHA с текущим HEAD ветки `dev`.
- Обновлять блок `[Не выпущено]` или создавать новый датированный блок наверху при наличии смысловых изменений.
- Предпочитать строгие русскоязычные категории из этого файла.
- Упоминать изменения README только тогда, когда они влияют на onboarding, понимание API, инструкции сборки/тестирования или архитектуру проекта.
- Упоминать изменения тестовой инфраструктуры, когда они затрагивают host tests, HIL tests, firmware-side test modules, fixtures, runners, protocol commands или expected coverage.
- Упоминать CI changes, когда меняются workflows, local CI tasks, artifacts, triggers, status или self-hosted runner strategy.
- Молчать, если новых коммитов нет или найден только отфильтрованный шум.