Files
demo-epb/docs/safety-md/MISRA-Compliance-Statement.md
T
Stefan Lohmaier fb2c083551
Validate / build-test (macos-latest) (push) Failing after 3s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Successful in 17s
Validate / reports (push) Successful in 50s
Release / release (push) Successful in 50s
feat(i18n): full English translation of demo-epb
Phase 2 of the English translation:

Word documents (filled, EPB-specific):
- 8 plans (PID, PM, QA, SWE, Test, Project Manual, CM, RM)
- 6 safety docs (HARA, Safety Case, FMEDA, MISRA Compliance,
  Verification Report, Tool Qualification Cppcheck)
- 2 manuals (User, Service)
- 3 audit artefacts (Review minutes, NC-001, MISRA-REC-001)
- All regenerated via pandoc from English markdown sources

Code, tests, headers:
- All file headers, struct comments, function docstrings in English
- All test names (TEST_BEGIN strings) translated
- Inline comments translated
- 46 tests still green after translation

CI workflows:
- All step names in English
- Step descriptions, comments, release notes template in English

README.md fully rewritten in English with proper guided tour.

Phase 3 (still pending): dev-process repo templates + toolstack/setup docs.
2026-05-12 03:37:51 -07:00

4.7 KiB

doc-id, version, status, date
doc-id version status date
SLM-EPB-MISRA-COMP-001 1.0 Released 2026-05-12

MISRA C:2012 Compliance Statement

Field Value
Project demo-epb
Document ID SLM-EPB-MISRA-COMP-001
Date 2026-05-12
Standard MISRA C:2012 (incl. Amendment 1)
Compiler GCC 11.2 (Linux CI) / GCC 16.1 (Win)
Checker Cppcheck 2.7+ with --addon=misra

1. Summary

The source code of demo-epb has been checked against MISRA C:2012. All Required and Mandatory rules are observed, with the exception of one documented deviation (see MISRA-REC-001).

Compliance statement: demo-epb v1.0 is MISRA C:2012 compliant taking into account the documented deviation records.

2. Scope

Module MISRA-checked
src/switch_debouncer.{c,h} Yes
src/actuator_driver.{c,h} Yes
src/apply_controller.{c,h} Yes
src/safety_manager.{c,h} Yes
src/epb_types.h Yes
src/stubs/*.h Header-only, no MISRA-relevant implementations
tests/**/* Out of scope (test code)
tools/**/* Out of scope (Python scripts)

3. Rule activation

The Cppcheck MISRA addon checks the following rule categories:

Category Count Activation in project
Mandatory 9 All active, violation blocks build
Required 119 All active, violation blocks build
Advisory 47 Active at warning level, deviations allowed per record

4. Compliance status per rule category

4.1 Mandatory rules (9)

Rule Status
R 9.1, R 9.2, R 9.3 Compliant
R 13.6, R 17.3, R 17.4 Compliant
R 19.1, R 21.13, R 21.17 Compliant
R 21.18, R 21.19, R 21.20 Compliant

Mandatory status: 100% Compliant.

4.2 Required rules

Total: 119 Required rules. Violations: 0.

Top relevant rules for this project:

Rule Description Status
R 8.1 Type specifier shall be explicit Compliant
R 8.2 Function parameters shall be explicitly named Compliant
R 8.4 Compatible declaration shall be visible Compliant
R 8.7 Functions shall not have external linkage if used in one unit Compliant
R 14.1 Loop counter shall not have essentially floating type Compliant
R 14.4 Controlling expression shall have essentially Boolean type Compliant
R 15.4 At most one break or goto per loop Compliant
R 17.7 Return value of non-void function shall be used Compliant (or explicit (void))
R 21.3 No dynamic memory allocation (malloc/free) Compliant (no heap use)
R 21.4 No setjmp/longjmp Compliant

4.3 Advisory rules

47 Advisory rules. Violations are documented via MISRA deviation records.

Record ID Rule File Rationale summary
MISRA-REC-001 R 15.5 src/apply_controller.c:64 Early-exit for NULL check

Advisory status: 1 deviation record, documented.

5. Check pipeline

cppcheck \
  --enable=all \
  --inconclusive \
  --error-exitcode=1 \
  --suppress=missingIncludeSystem \
  --suppress=unusedFunction \
  --addon=misra \
  -I src src

Checks are run:

  • Locally before each commit (recommended)
  • Automatically in CI on every push and PR
  • Before each release (tag push triggers release.yml)

6. Deviation Permits (project-wide)

No project-wide permits are active.

7. Re-audit triggers

This compliance statement must be re-created on the following changes:

  • Compiler change (e.g. GCC → Clang)
  • Major update of Cppcheck or the MISRA addon
  • New source files outside src/
  • MISRA standard update (e.g. C:2025 release)

8. Revision history

Version Date Change Author
1.0 2026-05-12 First release v1.0 S. Lohmaier