lift_indicator_suite/utils
2026-07-23 14:53:42 +03:00
..
log # tft_app: Phase 3.4 NKU Remote, Opto Inputs 2026-07-23 14:53:42 +03:00
prio_queue # bootloader: phase 2 + host test docs 2026-07-09 09:57:54 +03:00
ring_buffer # test_buttons: finished, all documentation refactored 2026-06-23 15:02:36 +03:00
CMakeLists.txt # Added: prio_queue structure + bsp/display start 2026-04-09 14:18:18 +03:00
README.md # test_buttons: finished, all documentation refactored 2026-06-23 15:02:36 +03:00

utils — платформонезависимые утилиты

Общие структуры данных и сервисы проекта. Код попадает сюда только если выполняются оба условия:

  • не зависит от железа (нет fsl_*, CMSIS, FreeRTOS, BSP);
  • используется более чем в одном месте проекта.

Все модули компилируются на хосте (host-тесты) и на таргете без изменений.


Модули

Модуль Путь Описание
ring_buffer ring_buffer/README.md SPSC кольцевой буфер байт, lock-free
prio_queue prio_queue/README.md Приоритетная очередь с вытеснением
log log/README.md Логгер с callback-транспортом

CMake

Все три модуля собираются в одну статическую библиотеку utils:

target_link_libraries(<target> PRIVATE utils)

Корень utils/ автоматически добавляется в include path — #include указывает полный путь от корня:

#include "ring_buffer/ring_buffer.h"
#include "prio_queue/prio_queue.h"
#include "log/log.h"

LOG_LEVEL пробрасывается из CMake-пресета или командной строки:

target_compile_definitions(utils PUBLIC LOG_LEVEL=4)

Если не задан — log.h выбирает уровень сам через NDEBUG (Verbose в Debug, Off в Release).