Files
NeoECU-Firmware/docs/CODING.md
2026-06-05 00:11:55 +02:00

28 lines
942 B
Markdown

# NeoECU Firmware Coding Guidelines
These rules apply to the `CM7` engine-control firmware.
## Style
- Functions: `camelCase`
- Variables: `python_case`
- Constants and macros: `UPPER_CASE`
- Types: `python_case_t`
## Real-Time Code
- Do not allocate from the heap in the engine-control path.
- Prefer static task, buffer, and control-structure allocation.
- Keep ISRs short: capture data, update the minimum state, wake a task, return.
- Keep heavy validation, filtering, and scheduling logic in task context.
- Avoid avoidable copies, indirection, and generic `void *` plumbing.
## Structure
- Keep one source file per feature or subsystem where practical.
- Put shared engine state in `global_state.h`.
- Put shared helper macros in `macros.h`.
- Prefer explicit state machines over implicit control flow.
- Make ISR-to-task ownership obvious from names and file placement.
- Use named constants and enums instead of magic numbers.