AUTOSAR_CP_SWS_EEPROMDriver
FIG-534aef3fc9afba24
929 × 774 px
2 Release(s)
Figure 9.2: Write job
SHA-256 Inhalts-Fingerabdruck:
534aef3fc9afba24830c6f88252e4ec1b1007dbf01e52791b1f7af6672f0b7dc
✦
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
- Klassifikation: UML-Sequenzdiagramm (Interaktionsdiagramm mit synchronen/asynchronen Funktionsaufrufen und Rückgaben).
- Architektur-Kontext: AUTOSAR Classic Platform (CP), Memory Stack (NVRAM Management).
- Funktionaler Zweck: Darstellung der asynchronen Auftragsabwicklung eines Schreibvorgangs (Write Job) über die Schichten Service Layer (
NvM), Memory Abstraction Layer (Ea) und Microcontroller Abstraction Layer (Eep), getrieben durch einen zyklischen OS/BSW-Task.
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Module:
BSW Task (OS task or cyclic call): Trägerkontext / Scheduler (SchM/OS) für die zyklische Ausführung des Treibers.«module» NvM(NVRAM Manager): Applikationsnaher Dienst zur Verwaltung nichtflüchtiger Daten.«module» Ea(EEPROM Abstraction): Speicherabstraktion (Teil des Memory Hardware Abstraction Layer / MemIf-Router), abstrahiert logische Blöcke auf physikalische Adressen.«module» Eep(EEPROM Driver): MCAL-Treiber zur direkten Ansteuerung des internen/externen EEPROM-Controllers.
- Schnittstellen (APIs):
Ea_Write(uint16 BlockNumber, const uint8* DataBufferPtr): Initiiert Block-Schreiboperation in der Abstraktionsschicht.Eep_Write(Eep_AddressType TargetAddress, const uint8* SourceAddressPtr, Eep_LengthType Length): Niederflurige Treiberschnittstelle zur Übergabe von Zieladresse, Quellpuffer und Datenlänge.Eep_MainFunction(): Zyklische Scheduling-Funktion des EEPROM-Treibers zur schrittweisen Ausführung des Treibers.Ea_JobEndNotification(): Callback vomEep-Treiber an das AbstraktionsmodulEabei erfolgreichem Auftragsabschluss.NvM_JobEndNotification(): Callback vonEaan denNvMzur Signalisierung des Gesamtauftragsendes.
3. Dynamisches Verhalten & Sequenzablauf
- Auftragsinitiierung (synchron, nicht-blockierend):
NvMruft synchronEa_Write()auf, welches die Anfrage in physische Parameter übersetzt und synchronEep_Write()aufruft.Eepvalidiert die Parameter, speichert die Auftragsdaten intern, schaltet den Modulzustand aufMEMIF_BUSYund das Auftragsergebnis aufMEMIF_JOB_PENDING.Eep_Write()quittiert mitE_OKund kehrt sofort überEaan denNvMzurück. Der Aufruf blockiert die Aufrufer-Task nicht für die physische Schreibdauer.
- Asynchrone Auftragsverarbeitung (zyklisch):
- Der
BSW Taskruft wiederholt in festem RasterEep_MainFunction()auf. - Innerhalb jeder Iteration wird eine konfigurierte/hardwareabhängige Dateneinheit (Data Unit, z. B. Page-Size, 1 Byte, SPI/I2C-Burst) physikalisch an das EEPROM übertragen.
- Bis zum Schreiben des letzten Datenpakets bleibt der Treiberstatus
MEMIF_BUSYund das ErgebnisMEMIF_JOB_PENDING.
- Der
- Auftragsabschluss & Benachrichtigungskette (im Kontext der letzten
Eep_MainFunction()):- Nach Fertigstellung der finalen Dateneinheit (n) setzt
Eepden Zustand zurück aufMEMIF_IDLEund das Ergebnis aufMEMIF_JOB_OK. - Sofern konfiguriert (
EepJobEndNotification), ruftEepsynchron im Kontext derMainFunctionden CallbackEa_JobEndNotification()auf. Ealeitet die Benachrichtigung synchron überNvM_JobEndNotification()an denNvMweiter.- Die Rückkaskade schließt ab und
Eep_MainFunction()terminiert.
- Nach Fertigstellung der finalen Dateneinheit (n) setzt
4. Normative Relevanz & Entwickler-Hinweise
- Puffergültigkeit: Der an
Eep_Write()übergebene Quellzeiger (const uint8* SourceAddressPtr) muss über die gesamte asynchrone Laufzeit bis zum Empfang derJobEndNotificationunverändert und gültig im RAM verbleiben (keine transienten Stack-Variablen). - Task-Kontext & Latenzen:
Ea_JobEndNotification()undNvM_JobEndNotification()laufen direkt im Kontext desBSW Task(Scheduler derEep_MainFunction()). Innerhalb dieser Callbacks dürfen keine langwierigen oder blockierenden Operationen ausgeführt werden, um das Task-Timing nicht zu verletzen. - Konfigurationsabhängigkeit: Die Callback-Kette erfordert aktivierte Parameter (
EepJobEndNotificationbzw.EaJobEndNotification). Bei Deaktivierung (Polling-Modus) fragt derNvMden Status alternativ überMemIf_GetJobResult()ab. - Reentrancy & Zustand: Solange der Treiber im Zustand
MEMIF_BUSYist, lehnen nachfolgende Aufrufe vonEep_Write(),Eep_Read()oderEep_Erase()weitere Anfragen sofort mitE_NOT_OKab und triggern ggf. den Det-FehlerEEP_E_BUSY.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.