Technical description
- The repository separates reusable firmware code from STM32CubeMX-generated project files.
- Shared modules keep dependencies on a specific .ioc file as small as possible, which makes them easier to move between projects.
- HAL stays at the lowest layer, custom abstractions form the middle layer, and application logic uses the prepared modules.
- This layout reduces logic copying between repositories and makes shared mechanisms easier to maintain.
- New modules are kept as independent components with a clear API and minimal dependency on a specific CubeMX project.