Files
demo-epb/docs/safety-md/MISRA-Compliance-Statement.md
T
Stefan Lohmaier c54a9c55d2
Validate / build-test (macos-latest) (push) Failing after 4s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Failing after 15s
Validate / reports (push) Has been skipped
Release / release (push) Successful in 50s
feat: Vollstaendige Demo-Doku — Safety, Manuals, Reports, API-Doc
Neue Word-Dokumente (alle aus Markdown via pandoc):

Safety (docs/safety/):
- HARA.docx — Hazard Analysis & Risk Assessment, leitet ASIL-D ab
- Safety-Case.docx — Argumentation pro Safety Goal (GSN-Stil)
- FMEDA.docx — Pro-Komponente Failure Modes + Diagnostic Coverage
- MISRA-Compliance-Statement.docx — formaler MISRA-Nachweis
- Verification-Report.docx — V-Modell rechte Seite Zusammenfassung
- Tool-Qualification-Cppcheck.docx — Tool-Qual (TCL2/ASIL-D)

Manuals (docs/manuals/):
- User-Manual.docx — Fahrerhandbuch-Auszug
- Service-Manual.docx — Werkstatt-Doku mit UDS-DTCs

CI-Erweiterungen:
- Doxyfile + `make docs` — API-Dokumentation aus src/
- tools/generate_test_report.py + `make test-report` — Test-Summary HTML
- validate.yml: Doxygen + Test-Report als CI-Artefakte
- release.yml: alle Word-Docs + Engineering-Artefakte ins Release-Bundle

README:
- Komplette Tour durch alle Artefakte
- Repo-Struktur-Diagramm aktualisiert
2026-05-12 00:55:37 -07:00

4.8 KiB

doc-id, version, status, datum
doc-id version status datum
SLM-EPB-MISRA-COMP-001 1.0 Freigegeben 2026-05-12

MISRA C:2012 Compliance Statement

Feld Wert
Projekt demo-epb
Dokument-ID SLM-EPB-MISRA-COMP-001
Datum 2026-05-12
Standard MISRA C:2012 (inkl. Amendment 1)
Compiler GCC 11.2 (Linux CI) / GCC 16.1 (Win)
Checker Cppcheck 2.7+ mit --addon=misra

1. Zusammenfassung

Der Quellcode von demo-epb wurde gegen MISRA C:2012 geprueft. Alle Required und Mandatory Regeln werden eingehalten, mit Ausnahme von einer dokumentierten Deviation (siehe MISRA-REC-001).

Compliance-Erklaerung: demo-epb v1.0 ist MISRA C:2012 compliant unter Beruecksichtigung dokumentierter Deviation Records.

2. Geltungsbereich

Modul MISRA-konform geprueft
src/switch_debouncer.{c,h} Ja
src/actuator_driver.{c,h} Ja
src/apply_controller.{c,h} Ja
src/safety_manager.{c,h} Ja
src/epb_types.h Ja
src/stubs/*.h Header-only, keine MISRA-relevanten Implementierungen
tests/**/* Nicht im Geltungsbereich (Test-Code)
tools/**/* Nicht im Geltungsbereich (Python-Skripte)

3. Regel-Aktivierung

Cppcheck MISRA-Addon prueft die folgenden Regel-Kategorien:

Kategorie Anzahl Aktivierung im Projekt
Mandatory 9 Alle aktiviert, Verletzung blockt Build
Required 119 Alle aktiviert, Verletzung blockt Build
Advisory 47 Aktiviert mit Warning-Level, Deviations zulaessig per Record

4. Compliance-Status pro Regel-Kategorie

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

Gesamt: 119 Required Rules. Verletzungen: 0.

Top-relevante Rules fuer dieses Projekt:

Rule Beschreibung 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 (oder explizit (void))
R 21.3 No dynamic memory allocation (malloc/free) Compliant (keine Heap-Nutzung)
R 21.4 No setjmp/longjmp Compliant

4.3 Advisory Rules

47 Advisory Rules. Verletzungen werden via MISRA Deviation Records dokumentiert.

Record-ID Rule Datei Begruendung-Auszug
MISRA-REC-001 R 15.5 src/apply_controller.c:64 Early-Exit fuer NULL-Check

Advisory Status: 1 Deviation Record, dokumentiert.

5. Pruef-Pipeline

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

Pruefung erfolgt:

  • Lokal vor jedem Commit (empfohlen)
  • Automatisch in CI bei jedem Push und PR
  • Vor jedem Release (Tag-Push triggert release.yml)

6. Deviation Permits (projektweit)

Keine projektweiten Permits aktiv.

7. Re-Audit-Trigger

Diese Compliance-Erklaerung muss bei folgenden Aenderungen neu erstellt werden:

  • Compiler-Wechsel (z.B. GCC -> Clang)
  • Major-Update von Cppcheck oder MISRA-Addon
  • Neue Quelldateien ausserhalb src/
  • MISRA-Standard-Update (z.B. C:2025 Release)

8. Aenderungshistorie

Version Datum Aenderung Autor
1.0 2026-05-12 Erstfreigabe v1.0 S. Lohmaier