Modular business logic for a fleet of embedded C devices
- C 76.9%
- CMake 17.2%
- Nix 5.9%
| cmake | ||
| devices | ||
| docs | ||
| hal | ||
| modules | ||
| ports | ||
| tests | ||
| .clang-format | ||
| .gitignore | ||
| CMakeLists.txt | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Modular business logic for a fleet of embedded C devices.
hal/: interface headers (no implementations)modules/: business logicports/: HAL implementations per targetdevices/: port + set of modules + super-looptests/: 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.