AUTOSAR_SWS_ADCDriver
FIG-62012e2e556979f0
534 × 241 px
1 Release(s)
Figure 12: Initialization of the ADC Driver
SHA-256 Inhalts-Fingerabdruck:
62012e2e556979f02b0ad966d8472359a98e2d15dbdfd438d73992373cd74e4e
✦
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_DriverInitListZerobzw.EcuM_AL_DriverInitListOnevor 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).
- Synchroner C-Funktionsaufruf:
- 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
- Trigger:
EcuMerreicht die Phase zur Initialisierung der MCAL-Treiber (EcuM_Init). - Aufruf (Synchroner Call):
EcuMruft synchronAdc_Init(ConfigPtr)auf.ConfigPtrübergibt die Adresse der Post-Build- bzw. Link-Time-Konfigurationsdatenstruktur (z. B. generiert ausAdc_PBCfg.c).
- 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 ZustandADC_UNINITbefindet. - 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_UNINITnachADC_INIT.
- Prüfung der Vorbedingungen: Bei aktivem Default Error Tracer (DET) Validierung von
- Rückkehr (Return Message):
- Synchroner Rücksprung (
Adc_Init()) an denEcuM. Nach Rückkehr ist der ADC-Treiber betriebsbereit für SWC-/BSW-Trigger (Adc_StartGroupConversion,Adc_EnableHardwareTrigger).
- Synchroner Rücksprung (
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, wennAdc_Init()in einem anderen Zustand alsADC_UNINITaufgerufen wird (keine Re-Initialisierung ohne vorherigesAdc_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:
ConfigPtrmuss auf eine gültige Struktur der Konfigurationsmenge zeigen. - VARIANT-PRE-COMPILE:
ConfigPtrkann implementationsabhängigNULL_PTRsein, sofern alle Parameter zur Compile-Zeit fixiert sind.
- VARIANT-POST-BUILD:
- Einschränkung:
- Keine ADC-API-Funktion (außer
Adc_GetVersionInfo) darf vor dem erfolgreichen Abschluss vonAdc_Init()ausgeführt werden; Zuwiderhandlung führt zuADC_E_UNINIT.
- Keine ADC-API-Funktion (außer
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.