AUTOSAR_CP_EXP_CDDDesignAndIntegrationGuideline
FIG-988a28fda6aee7a2
986 × 463 px
3 Release(s)
Figure 6.1: Header File Structure for CDD
SHA-256 Inhalts-Fingerabdruck:
988a28fda6aee7a2f8a00b71e69c44872c4a2e44b396529f68ee024504cab607
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: UML-Komponentendiagramm / Datei-Inklusionsstruktur (File Dependency Diagram) mit Dateisterotypen (
« source ») und gerichteten Abhängigkeiten (« Include »). - Architektur-Kontext: AUTOSAR Classic Platform (CP), Dokument
AUTOSAR_CP_EXP_CDDDesignAndIntegrationGuideline(Kapitel 6, Header File Structure for CDD). - Technischer Zweck: Definition der normativen Include-Hierarchie und Kapselungsgrenzen für Complex Device Driver (CDD). Es regelt die Trennung von öffentlichen APIs, Konfigurationsheadern, plattformspezifischen Typdefinitionen, Memory-Mapping-Mechanismen sowie BSW-Kernschnittstellen (RTE, Det, Dem).
2. Komponenten, Entitäten & Schnittstellen
Alle Entitäten sind als C-Quell- oder Headerdateien mit dem Stereotyp « source » modelliert:
- Zentrale Implementierungseinheit:
CDD_<MODULENAME>.c: Eine oder mehrere (mehrschichtige Box-Darstellung) C-Implementierungsdateien des Treibers. Enthält Funktionsdefinitionen, lokale Zustände und ISR-Handler.
- Öffentliche Schnittstellen & Typdefinitionen:
CDD_<MODULENAME>.h: Primärer externer API-Header des CDDs. Deklariert öffentliche Funktionen, Typen und Modul-Versions-IDs.CDD_<MODULENAME>_Cfg.h: Konfigurationsheader (mehrschichtig dargestellt für Pre-Compile- und generierte Link-Time/Post-Build-Strukturen). Enthält Makros, Funktionsschalter (STD_ON/STD_OFF) und statische Konfigurationskonstanten.Std_Types.h: Basis-Standarddatentypen von AUTOSAR (Std_ReturnType,E_OK,E_NOT_OKetc.).Platform_Types.h: Hardware- und compilerspezifische Basisdatentypen (uint8,uint16,booleanetc.).
- System- & Integrationsschnittstellen:
<Mip>_MemMap.h: Modul-spezifisches Memory-Mapping-Header (<Mip>= Module Implementation Prefix) für Compiler-Pragmas (START_SEC_.../STOP_SEC_...).Det.h: Schnittstelle zum Default Error Tracer für die Meldung von Entwicklungsfehlern (Det_ReportError).Dem.h: Schnittstelle zum Diagnostic Event Manager für produktionsrelevante Diagnoseereignisse (Dem_SetEventStatus).Rte_CDD_<MODULENAME>.h: Vom RTE-Generator erzeugter Header für Runnable-Prototypen, Applikations-Ports (Rte_Read,Rte_Write) und Inter-Runnable-Variables.<MODULENAME>.h: Untergeordneter/proprietärer Treiber- oder Register-Header (z. B. Vendor-HAL, Microcontroller-Peripherie oder legacy hardwarenahe Treiber).CDD_<MODULENAME>_Cbk.h: Callback-Header für Benachrichtigungen und Callbacks, die vom CDD implementiert und von anderen BSW-Modulen (z. B. CanIf, PduR, Spi) aufgerufen werden.
- Beziehungsstruktur & Kardinalitäten:
- Gerichtete Abhängigkeiten (
« Include », gestrichelter Pfeil vom Inkludierenden zum Inkludierten):CDD_<MODULENAME>.c→CDD_<MODULENAME>.hCDD_<MODULENAME>.c→<Mip>_MemMap.h(zyklisch wiederholt über Makro-Umschaltung)CDD_<MODULENAME>.c→Det.hCDD_<MODULENAME>.c→Dem.hCDD_<MODULENAME>.c→Rte_CDD_<MODULENAME>.hCDD_<MODULENAME>.c→<MODULENAME>.hCDD_<MODULENAME>.h→CDD_<MODULENAME>_Cfg.hCDD_<MODULENAME>.h→Std_Types.hStd_Types.h→Platform_Types.h
CDD_<MODULENAME>_Cbk.hsteht isoliert ohne eingehende Inklusion durchCDD_<MODULENAME>.h, um zyklische Abhängigkeiten bei der Einbindung durch rufende BSW-Module zu vermeiden.
- Gerichtete Abhängigkeiten (
3. Dynamisches Verhalten & Sequenzablauf
Da es sich um eine statische Kompilier- und Inklusionsarchitektur handelt, existiert kein Laufzeit-Sequenzdiagramm. Der funktionale Aufruf- und Initialisierungsfluss bildet sich wie folgt ab:
- Präprozessor- & Build-Reihenfolge:
- Bei Kompilierung von
CDD_<MODULENAME>.cwird zuerstCDD_<MODULENAME>.hexpandiert. CDD_<MODULENAME>.hzieht zwingendCDD_<MODULENAME>_Cfg.hundStd_Types.h(inkl.Platform_Types.h) an, sodass alle Modultypen auf definierten Plattformbreiten aufsetzen.
- Bei Kompilierung von
- Laufzeit-Interaktionen (statisch vorbereitet):
- RTE-Interaktion: Aufrufe von
Rte_Read_*/Rte_Write_*sowie Bereitstellung der Runnable-Entities laufen synchron über die inRte_CDD_<MODULENAME>.hdeklarierten APIs. - Fehlerpfade:
- Synchrone Entwicklungsfehler-Meldung via
Det_ReportError()über Inklusion vonDet.h. - Asynchrone/synchrone Diagnose- und Fehlermeldungen an den Fehlerspeicher via
Dem_SetEventStatus()überDem.h.
- Synchrone Entwicklungsfehler-Meldung via
- Speichersektionierung: Mehrfaches Inkludieren von
<Mip>_MemMap.hvor und nach Code-/Variablen-Blöcken zur Adressraumallokation im Linkerskript.
- RTE-Interaktion: Aufrufe von
4. Normative Relevanz & Entwickler-Hinweise
- Kapselung des Modulheaders (
CDD_<MODULENAME>.h):CDD_<MODULENAME>.hdarf wederDet.h,Dem.hnochRte_CDD_<MODULENAME>.hinkludieren. Diese BSW-Abhängigkeiten müssen strikt in der.c-Datei verbleiben, um Leckagen interner BSW-Typen in externe Aufrufer zu verhindern.
- Callback-Entkopplung (
CDD_<MODULENAME>_Cbk.h):- Callbacks, die von anderen BSW-Modulen gerufen werden, müssen in
CDD_<MODULENAME>_Cbk.hdeklariert werden. Dieser Header darf keine zyklischen Includes zum rufenden BSW-Modul aufbauen.
- Callbacks, die von anderen BSW-Modulen gerufen werden, müssen in
- Isolierung hardwarenaher Register (
<MODULENAME>.h):- Propriäterer hardwarenaher Code bzw. Registerdeklarationen verbleiben hinter
<MODULENAME>.hund dürfen ausschließlich vonCDD_<MODULENAME>.ckonsumiert werden; kein Durchgriff in den AUTOSAR-weiten Modulheader.
- Propriäterer hardwarenaher Code bzw. Registerdeklarationen verbleiben hinter
- AUTOSAR-MemMap-Konformität:
- Jede Deklaration/Definition in
.cund ggf. generierten Konfigurationsdateien muss zwingend über Präprozessor-Symbole in<Mip>_MemMap.hgeklammert sein (#define CDD_<MODULENAME>_START_SEC_CODE,#include "<Mip>_MemMap.h", etc.).
- Jede Deklaration/Definition in
- Konfigurationskonsistenz:
- Schalter für Pre-Compile-Varianten müssen vollständig in
CDD_<MODULENAME>_Cfg.hliegen; Link-Time/Post-Build-Datenstrukturen dürfen die Inklusionshierarchie vonStd_Types.hnicht verletzen.
- Schalter für Pre-Compile-Varianten müssen vollständig in
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.