Modular business logic for a fleet of embedded C devices
  • C 76.9%
  • CMake 17.2%
  • Nix 5.9%
Find a file
2026-08-24 13:18:13 +02:00
cmake initial commit 2026-08-24 13:18:13 +02:00
devices initial commit 2026-08-24 13:18:13 +02:00
docs initial commit 2026-08-24 13:18:13 +02:00
hal initial commit 2026-08-24 13:18:13 +02:00
modules initial commit 2026-08-24 13:18:13 +02:00
ports initial commit 2026-08-24 13:18:13 +02:00
tests initial commit 2026-08-24 13:18:13 +02:00
.clang-format initial commit 2026-08-24 13:18:13 +02:00
.gitignore initial commit 2026-08-24 13:18:13 +02:00
CMakeLists.txt initial commit 2026-08-24 13:18:13 +02:00
flake.lock initial commit 2026-08-24 13:18:13 +02:00
flake.nix initial commit 2026-08-24 13:18:13 +02:00
README.md initial commit 2026-08-24 13:18:13 +02:00

Modular business logic for a fleet of embedded C devices.

  • hal/: interface headers (no implementations)
  • modules/: business logic
  • ports/: HAL implementations per target
  • devices/: port + set of modules + super-loop
  • tests/: x86 integration tests over sim port

Build & test

nix develop
cmake -B build -S .
cmake --build build
ctest --test-dir build --output-on-failure

Coverage gate

cmake -B build -S . -DHAL_COVERAGE=ON
cmake --build build --target coverage_common coverage_can

Cross build (example: STM32F4)

cmake -B build-arm -S . --toolchain cmake/toolchains/arm-none-eabi.cmake
cmake --build build-arm --target device_foo_fw

See docs/porting.md for the porting workflow.