DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_ADCDriver FIG-f4b0daf477f955b4 534 × 240 px 2 Release(s)

Figure 12: Initialization of the ADC Driver

SHA-256 Inhalts-Fingerabdruck: f4b0daf477f955b4e2bdea3efcc51a726af1f1a002d53ec7f53627c019ae4a00
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Diagrammtyp: UML-Sequenzdiagramm (Interaktionsdiagramm).
  • Technischer Zweck: Spezifikation des standardisierten Bootstrapping- bzw. Initialisierungsablaufs des ADC-Treibers (Adc) durch den ECU State Manager (EcuM).
  • Architektur-Einordnung:
    • Ebene: Übergang von System Services (BSW / EcuM) zur hardwarenahen Treiber-Ebene (MCAL / Microcontroller Abstraction Layer).
    • AUTOSAR-Kontext: Ablauf findet in der frühen Startphase der BSW statt (typischerweise innerhalb von EcuM_AL_DriverInitListZero bzw. EcuM_AL_DriverInitListOne vor dem Start des OS und des Schicht-2/3-Betriebs).

2. Komponenten, Entitäten & Schnittstellen

  • Beteiligte Entitäten (Lifelines):
    • «module» EcuM: Caller; System-Service-Modul zur Steuerung der ECU-Zustände (Startup, Shutdown, Sleep, Wakeup).
    • «module» Adc: Callee; MCAL-Treiber zur Kapselung der Analog-Digital-Wandler-Peripherie des Mikrocontrollers.
  • Schnittstellen & Signaturen:
    • Synchroner C-Funktionsaufruf: void Adc_Init(const Adc_ConfigType* ConfigPtr).
    • Übergabeparameter: Pointer auf eine konstante, typisierte Konfigurationsstruktur (Adc_ConfigType), welche die Hardware-spezifischen Einstellungen enthält (Kanalzuweisungen, Gruppenkonfigurationen, Abtastzeiten, Clock-Prescaler, Trigger-Quellen).
  • Kardinalität & Beziehung:
    • 1:1-Beziehung während der Initialisierungssequenz.
    • Statischer Funktionsaufruf ohne dynamische Port- oder RTE-Kommunikation (direktes C-API-Interface innerhalb der BSW).

3. Dynamisches Verhalten & Sequenzablauf

  1. Trigger: EcuM erreicht die Phase zur Initialisierung der MCAL-Treiber (EcuM_Init).
  2. Aufruf (Synchroner Call):
    • EcuM ruft synchron Adc_Init(ConfigPtr) auf.
    • ConfigPtr übergibt die Adresse der Post-Build- bzw. Link-Time-Konfigurationsdatenstruktur (z. B. generiert aus Adc_PBCfg.c).
  3. Treiber-interne Ausführung (Adc):
    • Prüfung der Vorbedingungen: Bei aktivem Default Error Tracer (DET) Validierung von ConfigPtr != NULL (sofern Post-Build verwendet) sowie Sicherstellung, dass der Treiber sich noch im Zustand ADC_UNINIT befindet.
    • Hardware-Konfiguration: Setup von Prescaler-Registern, Takteinstellungen, ADC-Wandlungsgruppen, Auflösung und Referenzspannungen.
    • Reset aller Gruppenstatusanzeigen auf ADC_IDLE.
    • Puffer- und Streaming-Zeiger werden initialisiert; Gruppen-Notifications/Interrupts bleiben initial deaktiviert.
    • Zustandsübergang des Treibers von ADC_UNINIT nach ADC_INIT.
  4. Rückkehr (Return Message):
    • Synchroner Rücksprung (Adc_Init()) an den EcuM. Nach Rückkehr ist der ADC-Treiber betriebsbereit für SWC-/BSW-Trigger (Adc_StartGroupConversion, Adc_EnableHardwareTrigger).

4. Normative Relevanz & Entwickler-Hinweise

  • API-Vertrag (Adc_Init):
    • Reentrancy: Nicht reentrant. Darf nur einmalig während des BSW-Startup aufgerufen werden.
    • Aufrufkontext: Task-Ebene im privilegierten Modus (Supervisor Mode) vor Freigabe von Interrupts bzw. vor Start des Echtzeitbetriebssystems (OS).
  • DET-Fehlercodes (SWS-Anforderungen):
    • ADC_E_ALREADY_INITIALIZED: Wird geworfen, wenn Adc_Init() in einem anderen Zustand als ADC_UNINIT aufgerufen wird (keine Re-Initialisierung ohne vorheriges Adc_DeInit).
    • ADC_E_PARAM_CONFIG: Wird geworfen, wenn die Konfigurationsstruktur ungültig ist oder bei Post-Build-Varianten ein Nullzeiger übergeben wird.
  • Konfigurationsvarianten:
    • VARIANT-POST-BUILD: ConfigPtr muss auf eine gültige Struktur der Konfigurationsmenge zeigen.
    • VARIANT-PRE-COMPILE: ConfigPtr kann implementationsabhängig NULL_PTR sein, sofern alle Parameter zur Compile-Zeit fixiert sind.
  • Einschränkung:
    • Keine ADC-API-Funktion (außer Adc_GetVersionInfo) darf vor dem erfolgreichen Abschluss von Adc_Init() ausgeführt werden; Zuwiderhandlung führt zu ADC_E_UNINIT.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R18-10_R4.4.0_R1.5.0 → R19-11 keine inhaltliche Änderung Vorgänger: FIG-62012e2e556979f0

Keine inhaltlichen Änderungen erkennbar.

R20-11 → R21-11 redaktionell Nachfolger: FIG-9283e4a7cba87f67
  • Nachrichtenbeschriftung: Sowohl der Aufruf Adc_Init(const Adc_ConfigType*) als auch der Rücksprung Adc_Init() werden einzeilig ohne Zeilenumbruch dargestellt.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | EcuM | «module» | Adc | Adc_Init () | Adc_Init(const Adc_ConfigType*)

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R19-11 AUTOSAR_SWS_ADCDriver S. 100 12 Figure 12: Initialization of the ADC Driver
R20-11 AUTOSAR_SWS_ADCDriver S. 94 12 Figure 12: Initialization of the ADC Driver