DEENESPTFRRUARHIKOZHNL

EEPROM Abstraction (Ea)

ModulEa (EEPROM Abstraction)
BSW-Modul-ID40
Standard-Header#include "Ea.h"
SWS-SpezifikationAUTOSAR_SWS_EEPROMAbstraction.pdf
ClusterMemory Services

Modul-GuideKI-GENERIERT

Bildet logische Speicherblöcke auf EEPROM-Adressen ab und arbeitet Lese- und Schreibaufträge asynchron ab.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 55a6c103b1ca Herkunft Offene Fragen (4)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Bildet logische Speicherblöcke auf EEPROM-Adressen ab und arbeitet Lese- und Schreibaufträge asynchron ab.

Die EEPROM Abstraction bildet logische Blöcke des NvM auf Adressen eines EEPROM ab und nutzt in R20-11 den Treiber Eep. Lese-, Schreib-, Invalidierungs- und Löschaufträge werden synchron angenommen und asynchron in der zyklisch aufgerufenen Main Function ausgeführt ([SWS_Ea_00096]). Abschluss oder Fehlschlag meldet das Modul per Callback an den NvM oder über das Jobergebnis. Ein Schreiben betrifft stets den ganzen Block. Nur in R20-11 gibt es noch Ea_SetMode und ein synchrones Ea_Cancel ([SWS_Ea_00088]).

Die EEPROM Abstraction (Ea) bildet logische Blöcke auf EEPROM-Adressen ab. Sie liegt zwischen MemIf und dem EEPROM-Treiber Eep; die Blocknummer bezeichnet zugleich die Startadresse des Blocks ([SWS_Ea_00087]). Nach unten nutzt Ea in R20-11 die Eep-Dienste zum Lesen, Schreiben, Löschen, Abbrechen und Moduswechsel ([SWS_Ea_00097]). Erst ab R21-11 ersetzt MemAcc den Treiber Eep und Ea_SetMode entfällt (SWS EA S. 1).

ea_kontext EcuM EcuM Ea Ea EcuM->Ea Ea_Init(ConfigPtr) SchM BSW Scheduler SchM->Ea Ea_MainFunction() Diag Diagnose-/Systemdienst Diag->Ea Ea_EraseImmediateBlock NvM NvM MemIf MemIf NvM->MemIf MemIf_Read / MemIf_Write / MemIf_Cancel / MemIf_SetMode MemIf->Ea Ea_Read, Ea_Write, Ea_Cancel, Ea_SetMode Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep Eep Ea->Eep Eep_Read, Eep_Write, Eep_Erase, Eep_Cancel, Eep_SetMode, Eep_GetStatus, Eep_GetJobResult Det DET Ea->Det Det_ReportRuntimeError, Det_ReportError (optional) Eep->Ea Ea_JobEndNotification / Ea_JobErrorNotification

Kontextdiagramm: Ea zwischen NvM/MemIf und Eep, initialisiert durch EcuM und angetrieben durch den BSW Scheduler. Quellen: [SWS_Ea_00084], [SWS_Ea_00096], [SWS_Ea_00097]

Nach Ea_Init mit einem Zeiger auf den Konfigurationssatz ([SWS_Ea_00084]) meldet Ea_GetStatus einen der Zustände MEMIF_IDLE, MEMIF_BUSY oder MEMIF_BUSY_INTERNAL ([SWS_Ea_00089]). Der letzte steht für interne Verwaltung wie eine Garbage Collection (SWS EA S. 28).

Lesen, Schreiben, Invalidieren und Sofortlöschen sind asynchron. E_OK bestätigt nur, dass der Auftrag angenommen wurde. Die Ausführung erfolgt in der zyklisch aufgerufenen Ea_MainFunction ([SWS_Ea_00086], [SWS_Ea_00096]). Lesen ist mit beliebigem Offset und beliebiger Länge möglich. Schreiben betrifft stets den ganzen Block mit Offset null (SWS EA S. 25). Dass auch der Schreibauftrag in der Main Function startet, ist eine Interpretation.

Schreibauftrag über EaNvMMemIfEaEepBSW SchedulerUse Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr)Ea_Write(BlockNumber, DataBufferPtr)Adresse aus BlockNumber, Offset 0Länge = konfigurierte BlocklängeBlock als inkonsistent markierenE_OKE_OKUse Case: Asynchrone AbarbeitungEa_MainFunction()Eep_Write(...)Annahme: Treiberauftrag wird in Ea_MainFunction gestartetloopbis Treiberauftrag beendetEep_MainFunction()Ea_JobEndNotification()Block als konsistent markierenJobergebnis MEMIF_JOB_OKNvM_JobEndNotification()

Sequenzdiagramm: synchrone Annahme, asynchrone Ausführung über Eep und Rückmeldung per Callback an den NvM. Quellen: SWS Eep S. 50, [SWS_Ea_00094], [SWS_Ea_00099]

Ea_Cancel ist in R20-11 synchron ([SWS_Ea_00088]). Fehler meldet das Modul über die Codes EA_E_UNINIT bis EA_E_INVALID_CANCEL ([SWS_Ea_91001], [SWS_Ea_91002]). Hardwarefehler gelangen je nach Konfiguration auf einem von zwei Wegen zum NvM:

  • über die Abfrage des Jobergebnisses MEMIF_JOB_FAILED,
  • über den Callback NvM_JobErrorNotification.

Die Wiederherstellung übernimmt jeweils der NvM (ErrorDescription S. 48).

Rolle im Speicher-Stack: vom logischen Block zur EEPROM-Adresse

Die EEPROM Abstraction (Ea) liegt im Speicher-Stack zwischen dem Memory Abstraction Interface (MemIf) und dem EEPROM-Treiber (Eep). Nach oben bietet sie blockorientierte Dienste an. Die Blocknummer bezeichnet einen logischen Block und zugleich dessen Startadresse im EEPROM ([SWS_Ea_00086], [SWS_Ea_00087]). MemIf leitet Lese- und Schreibaufträge an das Abstraktionsmodul weiter, das der Parameter DeviceIndex auswählt, und gibt dessen Rückgabewert durch (SWS MemIf S. 18, SWS MemIf S. 19).

Nach unten nutzt Ea in R20-11 die Dienste des EEPROM-Treibers: Eep_Read, Eep_Write, Eep_Erase, Eep_Cancel, Eep_GetStatus, Eep_GetJobResult und Eep_SetMode. Hinzu kommt Det_ReportRuntimeError ([SWS_Ea_00097]). Det_ReportError ist eine optionale Schnittstelle ([SWS_Ea_00098]). Die importierten Typen Eep_AddressType, Eep_LengthType, MemIf_StatusType, MemIf_JobResultType und MemIf_ModeType spiegeln diese Einbettung wider ([SWS_Ea_00083]).

Zur Release-Einordnung: Laut Änderungshistorie entfällt ab R21-11 Ea_SetMode. Außerdem wird Ea_Cancel asynchron, die Pufferausrichtung kommt hinzu und MemAcc ersetzt Eep als untere Schicht (SWS EA S. 1). Für R20-11 gelten daher noch Eep als untere Schicht und Ea_SetMode als Dienst. Die Regeln zur Pufferausrichtung (SWS EA S. 19) gelten für R20-11 nicht.

ea_kontext EcuM EcuM Ea Ea EcuM->Ea Ea_Init(ConfigPtr) SchM BSW Scheduler SchM->Ea Ea_MainFunction() Diag Diagnose-/Systemdienst Diag->Ea Ea_EraseImmediateBlock NvM NvM MemIf MemIf NvM->MemIf MemIf_Read / MemIf_Write / MemIf_Cancel / MemIf_SetMode MemIf->Ea Ea_Read, Ea_Write, Ea_Cancel, Ea_SetMode Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep Eep Ea->Eep Eep_Read, Eep_Write, Eep_Erase, Eep_Cancel, Eep_SetMode, Eep_GetStatus, Eep_GetJobResult Det DET Ea->Det Det_ReportRuntimeError, Det_ReportError (optional) Eep->Ea Ea_JobEndNotification / Ea_JobErrorNotification

Kontextdiagramm: Ea vermittelt zwischen NvM/MemIf oben und dem Treiber Eep unten. EcuM initialisiert das Modul, der BSW Scheduler treibt es zyklisch an, und DET nimmt Fehlermeldungen entgegen. Quellen: [SWS_Ea_00084], [SWS_Ea_00096], [SWS_Ea_00097], [SWS_Ea_00098], [SWS_Ea_00099], [SWS_Ea_00100], SWS EA S. 34

Hochlauf und Modulzustände

Ea_Init initialisiert das Modul synchron und ist nicht reentrant. ConfigPtr zeigt auf den ausgewählten Konfigurationssatz ([SWS_Ea_00084]). Ea_ConfigType ist eine Struktur mit implementierungsspezifischen Elementen ([SWS_Ea_00190]). Laut Sequenzdiagramm der Spezifikation ruft der ECU State Manager Ea_Init im Hochlauf auf (SWS EA S. 47). Da es nur ein Einzelaufruf ist, erscheint er im Zustandsdiagramm unten als Übergang.

Ea_GetStatus liefert den Betriebszustand synchron als MemIf_StatusType ([SWS_Ea_00089]):

  • MEMIF_UNINIT: vor der Initialisierung.
  • MEMIF_IDLE: weder ein Auftrag noch eine interne Verwaltung läuft.
  • MEMIF_BUSY: ein Auftrag der oberen Schicht wird bearbeitet.
  • MEMIF_BUSY_INTERNAL: eine interne Verwaltungsoperation läuft, etwa eine Reorganisation des EEPROM-Speichers (Garbage Collection). Dabei kann auch der Treiber zeitweise belegt sein.

Die Zustände sind beschrieben in SWS EA S. 28. Einen Schreibauftrag nimmt das Modul im Zustand MEMIF_IDLE und auch im Zustand MEMIF_BUSY_INTERNAL an (SWS EA S. 25).

ea_status start MEMIF_UNINIT MEMIF_UNINIT start->MEMIF_UNINIT MEMIF_IDLE MEMIF_IDLE MEMIF_UNINIT->MEMIF_IDLE Ea_Init(ConfigPtr) MEMIF_BUSY MEMIF_BUSY MEMIF_IDLE->MEMIF_BUSY Auftrag angenommen (Ea_Read, Ea_Write, ...) MEMIF_BUSY_INTERNAL MEMIF_BUSY_INTERNAL MEMIF_IDLE->MEMIF_BUSY_INTERNAL interne Verwaltung startet (z. B. Garbage Collection) MEMIF_BUSY->MEMIF_IDLE Auftrag beendet (Erfolg/Fehler) oder Ea_Cancel MEMIF_BUSY_INTERNAL->MEMIF_IDLE interne Verwaltung beendet MEMIF_BUSY_INTERNAL->MEMIF_BUSY Ea_Write angenommen

Zustandsdiagramm: Lebenszyklus des Modulstatus von MEMIF_UNINIT über MEMIF_IDLE zu MEMIF_BUSY bzw. MEMIF_BUSY_INTERNAL. Aus der internen Verwaltung heraus wird ein Schreibauftrag angenommen. Quellen: [SWS_Ea_00084], [SWS_Ea_00089], SWS EA S. 28, SWS EA S. 25, SWS EA S. 27

Aufträge annehmen und in Ea_MainFunction abarbeiten

Ea_Read, Ea_Write, Ea_InvalidateBlock und Ea_EraseImmediateBlock sind asynchron. E_OK heißt nur, dass das Modul den Auftrag angenommen hat. E_NOT_OK heißt, dass es ihn abgelehnt hat ([SWS_Ea_00086], [SWS_Ea_00087], [SWS_Ea_00091], [SWS_Ea_00093]). Bis zum Ergebnis meldet Ea_GetJobResult den Wert MEMIF_JOB_PENDING ([SWS_Ea_00090]).

Die eigentliche Arbeit leistet Ea_MainFunction, verfügbar über SchM_Ea.h ([SWS_Ea_00096]). Der Basic Software Scheduler ruft die Funktion direkt auf. Sie hat weder Parameter noch Rückgabewert und ist nicht reentrant (SWS EA S. 36).

ea_annahme start d1 Modul initialisiert? (Status ≠ MEMIF_UNINIT) start->d1 d2 Status MEMIF_BUSY? d1->d2 ja e1 EA_E_UNINIT melden Rückgabe E_NOT_OK d1->e1 nein d3 Blocknummer, Offset, Länge, Zeiger gültig? d2->d3 nein (IDLE oder BUSY_INTERNAL) e2 EA_E_BUSY melden Rückgabe E_NOT_OK d2->e2 ja e3 EA_E_INVALID_BLOCK_NO / _OFS / _LEN oder EA_E_PARAM_POINTER melden Rückgabe E_NOT_OK d3->e3 nein ok Parameter übernehmen Status MEMIF_BUSY Jobergebnis MEMIF_JOB_PENDING Rückgabe E_OK d3->ok ja mf Abarbeitung in Ea_MainFunction ok->mf hinweis Annahme: Reihenfolge der Prüfungen hinweis->d1 betrifft

Aktivitätsdiagramm: Prüfungen bei der Annahme eines Auftrags und ihre Fehlercodes. Die Prüfreihenfolge ist eine Annahme. Quellen: [SWS_Ea_91001], [SWS_Ea_91002], [SWS_Ea_00089], [SWS_Ea_00090], SWS EA S. 25

Ea_Read berechnet aus Blocknummer und Offset die Leseadresse. Offset und Länge dürfen jeden Wert ihres Typbereichs annehmen, sodass beliebig viele Bytes ab beliebiger Position im Block lesbar sind. Die Leseoperation läuft ausdrücklich asynchron in der Main Function (SWS EA S. 24).

Ea_Write berechnet die Schreibadresse aus der Blocknummer mit festem Offset null. Die Länge setzt die Funktion auf die für den Block konfigurierte Länge (SWS EA S. 25). Ein Schreiben betrifft also immer den ganzen Block ([SWS_Ea_00087]). Das Schaubild zum Schreibauftrag zeigt den weiteren Weg über Eep_Write, die zyklische Eep_MainFunction, Ea_JobEndNotification und NvM_JobEndNotification (SWS Eep S. 50).

Interpretation: Für das Lesen ist der Start des Treiberauftrags in Ea_MainFunction ausdrücklich gefordert. Frage Q-50dcdf4156855a99 (offen) Für das Schreiben dürfte dasselbe gelten, weil Ea_MainFunction die angeforderten Aufträge bearbeitet ([SWS_Ea_00096]). Bei einer herstellerspezifischen Bibliothek sind die Sequenzdiagramme nur für die Beziehung zu den aufrufenden Modulen bindend, nicht für die Aufrufe an den Treiber (SWS EA S. 45).

Schreibauftrag über EaNvMMemIfEaEepBSW SchedulerUse Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr)Ea_Write(BlockNumber, DataBufferPtr)Adresse aus BlockNumber, Offset 0Länge = konfigurierte BlocklängeBlock als inkonsistent markierenE_OKE_OKUse Case: Asynchrone AbarbeitungEa_MainFunction()Eep_Write(...)Annahme: Treiberauftrag wird in Ea_MainFunction gestartetloopbis Treiberauftrag beendetEep_MainFunction()Ea_JobEndNotification()Block als konsistent markierenJobergebnis MEMIF_JOB_OKNvM_JobEndNotification()

Sequenzdiagramm: Ein Schreibauftrag wird synchron angenommen, asynchron über den Treiber ausgeführt und per Callback an den NvM gemeldet. Quellen: SWS Eep S. 50, SWS MemIf S. 19, [SWS_Ea_00087], [SWS_Ea_00094], [SWS_Ea_00099]

Blockverwaltung: Adressabbildung, Konsistenz und Invalidierung

Abb. 7.1 stellt den virtuellen und den physischen Speicher gegenüber. Blocknummer (16 Bit) und Offset (16 Bit) bilden eine virtuelle Adresse, sodass ein Block bis zu 64 KiB umfassen kann. Physisch werden die Blöcke an der konfigurierten virtuellen Seitengröße EA_VIRTUAL_PAGE_SIZE ausgerichtet; ungenutzter virtueller Raum belegt keinen Speicher (SWS EA S. 23).

Ea führt für jeden Block eine eigene Konsistenzinformation. Beim Start eines Schreibvorgangs gilt der Block als inkonsistent, nach erfolgreichem Ende wieder als konsistent. Ea muss einen inkonsistenten Block von einem absichtlich invalidierten Block unterscheiden können (SWS EA S. 19, Fassung R24-11). Für den Aufrufer werden beide Fälle über die Jobergebnisse MEMIF_BLOCK_INCONSISTENT und MEMIF_BLOCK_INVALID sichtbar ([SWS_Ea_00090]).

Ea_InvalidateBlock invalidiert den Block BlockNumber ([SWS_Ea_00091]). Je nach Implementierung geschieht das über die Löschfunktion des Treibers oder über interne Verwaltungsinformation, die dann nichtflüchtig gespeichert werden muss (SWS EA S. 31).

Ea_EraseImmediateBlock löscht einen Block ([SWS_Ea_00093]). Die Funktion ist für Diagnose- oder vergleichbare Systemdienste gedacht, die den Bereich für Immediate-Daten vorab löschen. Die Adresse berechnet sie mit Offset null. Sie stellt sicher, dass Ea Immediate-Daten schreiben kann (SWS EA S. 34).

Betriebsmodus, Abbruch und Benachrichtigungen

In R20-11 schaltet Ea_SetMode mit dem Parameter Mode vom Typ MemIf_ModeType den Modus des EEPROM-Treibers um. Der Dienst ist asynchron und nicht reentrant ([SWS_Ea_00085]). Die verkürzte Signatur ohne Parameter in den API-Elementen weicht davon ab; maßgeblich ist die Servicebeschreibung. Die Schaubilder zeigen die Kette NvM → MemIf_SetMode → Ea_SetMode → Eep_SetMode (SWS EA S. 42). Ab R21-11 entfällt der Dienst (SWS EA S. 1).

Moduswechsel mit Ea_SetMode (R20-11)NvMMemIfEaEepMemIf_SetMode(MemIf_ModeType)Ea_SetMode(MemIf_ModeType)Eep_SetMode(MemIf_ModeType)Eep_SetMode()Ea_SetMode()MemIf_SetMode()Ea_SetMode nur bis R20-11, ab R21-11 entfernt

Sequenzdiagramm: Ein Moduswechsel wird vom NvM über MemIf und Ea bis zum Treiber durchgereicht (nur bis R20-11). Quellen: [SWS_Ea_00085], SWS EA S. 52, SWS EA S. 42

Ea_Cancel bricht den laufenden asynchronen Auftrag ab und ist in R20-11 synchron ([SWS_Ea_00088]). Die spätere Dokumentstelle beschreibt den Dienst als asynchron; für R20-11 gilt das Requirement. Inhaltlich gilt laut dieser Stelle: Im Zustand MEMIF_BUSY ruft Ea die Abbruchfunktion des Treibers auf und setzt seine internen Variablen zurück. Das Jobergebnis lautet dann MEMIF_JOB_CANCELED (SWS EA S. 27). MemIf leitet den Abbruch weiter (SWS MemIf S. 20). Ein Abbruch ohne anhängigen Auftrag ergibt EA_E_INVALID_CANCEL ([SWS_Ea_91002]).

Abbruch eines Auftrags mit Ea_CancelNvMMemIfEaEepMemIf_Cancel(DeviceIndex)Ea_Cancel()altStatus MEMIF_UNINIT (DET aktiv)EA_E_UNINIT meldeninterne Variablen unverändertStatus MEMIF_BUSYEep_Cancel()Rückkehrinterne Variablen zurücksetzenJobergebnis MEMIF_JOB_CANCELEDbereit für neuen Auftragkein Auftrag anhängigEA_E_INVALID_CANCEL meldenRückkehrRückkehr

Sequenzdiagramm: Ea_Cancel verzweigt je nach Modulstatus in Abbruch beim Treiber, Fehlermeldung oder Rückkehr ohne Änderung. Quellen: [SWS_Ea_00088], [SWS_Ea_91002], [SWS_Ea_00097], SWS EA S. 27, SWS MemIf S. 20

Die untere Schicht meldet Erfolg oder Fehlschlag eines asynchronen Auftrags über Ea_JobEndNotification bzw. Ea_JobErrorNotification ([SWS_Ea_00094], [SWS_Ea_00095]). Ea signalisiert dem NvM dann NvM_JobEndNotification bzw. NvM_JobErrorNotification aus NvM_MemIf.h ([SWS_Ea_00099], [SWS_Ea_00100]). MemIf stellt selbst keine Callbacks bereit (SWS MemIf S. 24).

Callbacks können auf Interrupt-Ebene laufen. Ihre Laufzeit muss daher kurz bleiben, und das Systemdesign muss die Konfiguration darauf abstimmen (SWS EA S. 35). Ea_GetVersionInfo ist als einziger Dienst reentrant ([SWS_Ea_00092]).

Verhalten im Fehlerfall

Die Fehlercodes stehen in zwei Tabellen.

  • Erste Tabelle ([SWS_Ea_91001]): EA_E_UNINIT (0x01), EA_E_INVALID_BLOCK_NO (0x02), EA_E_INVALID_BLOCK_OFS (0x03), EA_E_PARAM_POINTER (0x04) und EA_E_INVALID_BLOCK_LEN (0x05).
  • Zweite Tabelle ([SWS_Ea_91002]): EA_E_BUSY (0x06) und EA_E_INVALID_CANCEL (0x08).

EA_E_INIT_FAILED wurde mit R20-11 entfernt (SWS EA S. 1). Interpretation: Die erste Tabelle dürfte Entwicklungsfehler über das optionale Det_ReportError erfassen, die zweite Laufzeitfehler über Det_ReportRuntimeError ([SWS_Ea_00097], [SWS_Ea_00098]). Frage Q-8443a03d306e4143 (offen)

Bei aktiver Entwicklungsfehlererkennung gilt im uninitialisierten Zustand: Ea_GetJobResult meldet EA_E_UNINIT und liefert MEMIF_JOB_FAILED (SWS EA S. 30). Ea_Cancel meldet EA_E_UNINIT und kehrt zurück, ohne interne Variablen zu ändern (SWS EA S. 27). Ea_GetVersionInfo meldet bei NULL-Zeiger EA_E_PARAM_POINTER (SWS EA S. 32). Ea_InvalidateBlock und Ea_EraseImmediateBlock liefern E_NOT_OK nur bei aktivem DET ([SWS_Ea_00091], [SWS_Ea_00093]).

Hardwarefehler erkennt der EEPROM-Treiber. Die Reaktion des Ea ist implementierungsspezifisch. Gemeldet wird je nach Konfiguration auf einem von zwei Wegen: über eine Abfrage mit dem Jobergebnis MEMIF_JOB_FAILED oder über den Callback NvM_JobErrorNotification. Die Wiederherstellung übernimmt der NvM (ErrorDescription S. 48, [SWS_Ea_00095], [SWS_Ea_00100]). Für den Abfrageweg nennt die Fehlerbeschreibung Eep_GetJobResult. Dass Ea diese Funktion in seiner Main Function abfragt, ist vermutlich so gemeint, aber nicht ausdrücklich festgelegt. Frage (offen)

Das Jobergebnis unterscheidet die Fehlerarten fein ([SWS_Ea_00090]):

  • MEMIF_JOB_CANCELED: Abbruch, gilt als fehlgeschlagen.
  • MEMIF_JOB_FAILED: der Auftrag ist fehlgeschlagen.
  • MEMIF_BLOCK_INCONSISTENT: der Block kann verfälschte Daten enthalten.
  • MEMIF_BLOCK_INVALID: der Block wurde invalidiert, die Operation ist nicht ausführbar.
Meldung eines TreiberfehlersNvMEaEepEep erkennt Fehler im asynchronen AuftragaltKonfiguration: Callback-BenachrichtigungEa_JobErrorNotification()implementierungsspezifische ReaktionNvM_JobErrorNotification()Konfiguration: PollingEep_GetJobResult()MEMIF_JOB_FAILEDAnnahme: Abfrage in Ea_MainFunctionEa_GetJobResult()MEMIF_JOB_FAILEDWiederherstellung: Aufgabe des NvM

Sequenzdiagramm: Ein Treiberfehler erreicht den NvM je nach Konfiguration per Callback oder per Abfrage des Jobergebnisses. Quellen: ErrorDescription S. 48, [SWS_Ea_00095], [SWS_Ea_00100], [SWS_Ea_00090], [SWS_Ea_00097]

Weiterführende Detailbelege

KI-generierter Leitfaden auf Basis der im Payload bereitgestellten R20-11-Requirements und Dokumentstellen. Dokumentstellen aus späteren Releases sind gekennzeichnet; bei Abweichungen gilt das Requirement. Als Interpretation markierte Aussagen sind nicht normativ.

EEPROM Abstraction (Ea)

Provides uniform access to external and internal EEPROM devices.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function Ea_Init [SWS_Ea_00084] 📄 PDF

void Ea_Init (const Ea_ConfigType* ConfigPtr);

Initializes the EEPROM abstraction module.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 758621a616a5 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Ea_Init dient der Initialisierung des Moduls EEPROM Abstraction ([SWS_Ea_00084]). Sie wird über die Header-Datei Ea.h zur Verfügung gestellt und versetzt das Modul in den betriebsbereiten Zustand ([SWS_Ea_00084]).

Gemäß der Schnittstellenspezifikation in [SWS_Ea_00084] gelten für den Aufruf folgende Eigenschaften und Randbedingungen:

  • Semantik und Service-ID: Der Aufruf erfolgt synchron. Dem Dienst ist die Service-ID 0x00 zugeordnet.
  • Reentranz: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert und darf daher nicht nebenläufig ausgeführt werden.
  • Parameter: Als Eingangsparameter dient ConfigPtr (Typ const Ea_ConfigType*), der auf den ausgewählten Konfigurationsdatensatz verweist. Es existieren weder Ein-/Ausgangs- noch Ausgangsparameter.
  • Rückgabewert: Die Funktion liefert keinen Rückgabewert (void).

Hinsichtlich des Aufrufkontexts enthält der vorliegende Eintrag keine expliziten Festlegungen; die Initialisierung dürfte typischerweise zentral in der Hochlaufphase des Steuergeräts erfolgen, bevor andere Modulfunktionen ausgeführt werden. Frage Q-b2b40930e5fd0ee7 (offen) Spezifische Fehlercodes, Reaktionen im Fehlerfall oder Meldungen an DET und DEM werden in [SWS_Ea_00084] nicht aufgeführt.

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function Ea_SetMode [SWS_Ea_00085] 📄 PDF

void Ea_SetMode (MemIf_ModeType Mode);

Function to switch the mode of the underlying EEPROM Driver

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a4f6e1f8e66c Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Funktion Ea_SetMode dient dem Umschalten des Betriebsmodus des unterliegenden EEPROM-Treibers ([SWS_Ea_00085]). Sie akzeptiert als Eingangsparameter den gewünschten Modus Mode vom Typ MemIf_ModeType ([SWS_Ea_00085]). Die Funktion besitzt keinen Rückgabewert (void) und ist mit der Service-ID 0x01 über die Header-Datei Ea.h verfügbar ([SWS_Ea_00085]).

Die Ausführung erfolgt asynchron (Asynchronous), sodass die tatsächliche Umschaltung des Treibers nach dem Aufruf im Hintergrund weiterverarbeitet wird ([SWS_Ea_00085]).

Nebenläufigkeit und Einschränkungen

  • Reentranz: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Ea_00085]). Parallele Aufrufe aus unterschiedlichen Tasks oder Kontexten müssen auf Aufruferseite verhindert werden.
  • Aufrufkontext und Parameter: Es dürfen keine Ein-/Ausgangs- oder reinen Ausgangsparameter übergeben werden; es ist ausschließlich der Eingabeparameter Mode vorgesehen ([SWS_Ea_00085]).

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I1)

function Ea_Read [SWS_Ea_00086] 📄 PDF

Std_ReturnType Ea_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);

Reads Length bytes of block Blocknumber at offset Block Offset into the buffer Data Buffer Ptr.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 43bc307f1243 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Funktion Ea_Read dient dem Auslesen von Nutzdaten aus einem spezifizierten logischen EEPROM-Block über den Header Ea.h [SWS_Ea_00086]. Über den Parameter Block Number wird der logische Block adressiert, welcher zugleich dessen Startadresse im EEPROM bestimmt [SWS_Ea_00086]. Der Parameter Block Offset legt den relativen Leseversatz innerhalb des Blocks fest, während Length die Anzahl der zu lesenden Bytes definiert [SWS_Ea_00086]. Die Zieldaten werden in den durch Data Buffer Ptr referenzierten Puffer geschrieben [SWS_Ea_00086].

Der Aufruf verhält sich asynchron (Asynchronous): Der Rückgabewert E_OK signalisiert ausschließlich, dass das EA-Modul die Auftragsanforderung akzeptiert hat, wohingegen E_NOT_OK eine Zurückweisung des Auftrags anzeigt [SWS_Ea_00086]. Interpretation: Da die Datenübertragung asynchron im Hintergrund erfolgt, dürfte der referenzierte Puffer bis zur vollständigen Ausführung des Auftrags unverändert und gültig bereitgestellt werden müssen. Frage Q-34c9b29f373bd6cf (offen)

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Ea_00086]. Parallele Aufrufe aus unterschiedlichen Ausführungskontexten heraus sind folglich nicht zulässig und müssen aufruferseitig synchronisiert werden.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation R20-11 erzeugt.

function Ea_Write [SWS_Ea_00087] 📄 PDF

Std_ReturnType Ea_Write (uint16 BlockNumber, const uint8* DataBufferPtr);

Writes the contents of the Data Buffer Ptr to the block Block Number.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 41c9f0ddc8f3 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Ea_Write stößt das asynchrone Schreiben von Daten aus einem Puffer in einen logischen EEPROM-Block an [SWS_Ea_00087]. Sie ist über die Header-Datei Ea.h deklariert und besitzt die Service-ID 0x03 [SWS_Ea_00087].

Parameter und Rückgabewert

  • BlockNumber (Eingang, uint16): Bezeichnet die Nummer des logischen Blocks und repräsentiert zugleich dessen Startadresse im EEPROM [SWS_Ea_00087].
  • DataBufferPtr (Eingang, const uint8*): Zeiger auf den Puffer, der die zu schreibenden Daten enthält [SWS_Ea_00087].
  • Rückgabewert (Std_ReturnType): E_OK signalisiert, dass der Schreibauftrag vom EA-Modul zur Ausführung angenommen wurde; E_NOT_OK bedeutet, dass die Anforderung abgewiesen wurde [SWS_Ea_00087].

Nebenläufigkeit und Einschränkungen

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Ea_00087]. Daher dürfen nebenläufige Aufrufe vermutlich nicht unkoordiniert ohne vorherige externe Synchronisation erfolgen. Frage Q-a52fbcca6963c760 (offen) Da der Schreibprozess asynchron (Asynchronous) ausgeführt wird [SWS_Ea_00087], dürfte der Aufrufer den bereitgestellten Puffer DataBufferPtr bis zur vollständigen Beendigung des Auftrags unverändert im Speicher vorhalten müssen. Spezifische DET- oder DEM-Fehlercodes sind im Spezifikationsauszug der Funktion nicht benannt.

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation von AUTOSAR Release R20-11 generiert.

function Ea_Cancel [SWS_Ea_00088] 📄 PDF

void Ea_Cancel (void);

Cancels the ongoing asynchronous operation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7fde513694e7 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Ea_Cancel bricht einen gegenwärtig laufenden asynchronen Vorgang des EEPROM-Abstraction-Moduls ab ([SWS_Ea_00088]). Der Dienst wird über die Header-Datei Ea.h bereitgestellt und besitzt die Service-ID 0x04 ([SWS_Ea_00088]).

Hinsichtlich des Aufrufverhaltens und der Schnittstellendefinition gelten folgende Merkmale ([SWS_Ea_00088]):

  • Semantik: Der Aufruf selbst erfolgt synchron (Synchronous), obwohl er eine laufende asynchrone Operation abbricht ([SWS_Ea_00088]).
  • Parameter und Rückgabe: Die Signatur lautet void Ea_Cancel(void). Die Funktion erwartet weder Eingabe- noch Ausgabe- oder Übergabeparameter und besitzt keinen Rückgabewert ([SWS_Ea_00088]).
  • Reentranz: Die Schnittstelle ist als nicht reentrant (Non Reentrant) definiert ([SWS_Ea_00088]). Sie darf folglich nicht nebenläufig aus mehreren Ausführungskontexten oder unterbrechenden Tasks aufgerufen werden.

Da Ea_Cancel keine Auftrags- oder Block-Identifikatoren entgegennimmt, bezieht sich der Abbruch unmittelbar auf den aktuell in Bearbeitung befindlichen asynchronen Gesamtvorgang ([SWS_Ea_00088]). Spezifische Fehlercodes oder Rückmeldungen an Detektionsmechanismen sind in den Spezifikationsdaten nicht enthalten. Vermutlich erfolgt der Aufruf typischerweise durch übergeordnete Schichten wie das Memory Abstraction Interface (MemIf), um langwierige Lese-, Schreib- oder Löschvorgänge gezielt vorzeitig zu beenden. Frage Q-e441cbf6a5097568 (offen)

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

function Ea_GetStatus [SWS_Ea_00089] 📄 PDF

MemIf_StatusType Ea_GetStatus (void);

Service to return the Status.

function Ea_GetJobResult [SWS_Ea_00090] 📄 PDF

MemIf_JobResultType Ea_GetJobResult (void);

Service to return the Job Result.

function Ea_InvalidateBlock [SWS_Ea_00091] 📄 PDF

Std_ReturnType Ea_InvalidateBlock (uint16 BlockNumber);

Invalidates the block Block Number.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2c1c29a1fe37 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion Ea_InvalidateBlock dient der Invalidierung eines durch die logische Blocknummer angegebenen Blocks [SWS_Ea_00091]. Sie besitzt die Service-ID 0x07 und wird über die Header-Datei Ea.h bereitgestellt [SWS_Ea_00091]. Als Eingabeparameter nimmt sie Block Number vom Typ uint16 entgegen; dieser bezeichnet die logische Blocknummer und gibt zugleich die Startadresse des betreffenden Blocks im EEPROM an [SWS_Ea_00091]. Ein-/Ausgabeparameter oder reine Ausgabeparameter sind für diesen Dienst nicht definiert [SWS_Ea_00091].

Der Aufruf wird als asynchrone Operation (Asynchronous) ausgeführt [SWS_Ea_00091]. Ein Rückgabewert E_OK vom Typ Std_ReturnType bestätigt dem Aufrufer, dass das EA-Modul die Auftragsanforderung zur weiteren Bearbeitung angenommen hat [SWS_Ea_00091].

Fehlerbehandlung

Konnte das EA-Modul den angeforderten Auftrag nicht annehmen, wird der Fehlerwert E_NOT_OK zurückgegeben [SWS_Ea_00091]. Laut Spezifikation erfolgt diese Rückgabe von E_NOT_OK jedoch ausschließlich dann, wenn DET aktiviert ist [SWS_Ea_00091].

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Ea_00091]. Interpretation: Aufrufer dürfen die Funktion folglich vermutlich nicht parallel oder unterbrechend aufrufen, da keine modulseitige Reentranz gewährleistet wird [SWS_Ea_00091]. Frage Q-81d805517d2eac88 (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Classic R20-11 erstellt.

function Ea_EraseImmediateBlock [SWS_Ea_00093] 📄 PDF

Std_ReturnType Ea_EraseImmediateBlock (uint16 BlockNumber);

Erases the block Block Number.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 11c26d81184d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Ea_EraseImmediateBlock dient dem Löschen eines logischen Blocks im EEPROM gemäß [SWS_Ea_00093].

  • Verwendung und Semantik: Der Aufruf erfolgt asynchron ([SWS_Ea_00093]). Über den Eingabeparameter Block Number wird die Nummer des logischen Blocks übergeben, welche zugleich die Startadresse dieses Blocks im EEPROM bezeichnet ([SWS_Ea_00093]). Der Rückgabewert ist vom Typ Std_ReturnType: E_OK signalisiert, dass der angeforderte Auftrag vom Modul akzeptiert wurde ([SWS_Ea_00093]).
  • Fehlerbehandlung: Sofern das Default Error Tracer (DET) aktiviert ist, gibt die Funktion E_NOT_OK zurück, wenn der Auftrag vom EA-Modul nicht angenommen werden konnte ([SWS_Ea_00093]). Ist DET nicht aktiviert, dürfte nach dem Wortlaut der Spezifikation im Fehlerfall kein E_NOT_OK zurückgegeben werden. Frage Q-5015a2135dbd4723 (offen)
  • Nebenläufigkeit und Einschränkungen: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Ea_00093]). Aufrufer müssen daher sicherstellen, dass parallele oder überlappende Aufrufe vermieden werden. Die Deklaration ist über die Header-Datei Ea.h verfügbar, und die Service-ID lautet 0x09 ([SWS_Ea_00093]).

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation erstellt.

function Ea_JobEndNotification [SWS_Ea_00094] 📄 PDF

void Ea_JobEndNotification (void);

Service to report to this module the successful end of an asynchronous operation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 234afd19dc30 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Ea_JobEndNotification dient dazu, dem Modul Ea den erfolgreichen Abschluss einer zuvor initiierten asynchronen Operation mitzuteilen [SWS_Ea_00094]. Die Schnittstelle wird über den Header Ea.h bereitgestellt und besitzt die Service-ID 0x10 [SWS_Ea_00094].

Hinsichtlich Semantik und Schnittstellendefinition gelten folgende Eigenschaften gemäß [SWS_Ea_00094]:

  • Signatur und Parameter: Die Funktion erwartet keine Übergabeparameter (void) und liefert keinen Rückgabewert (void).
  • Synchronität: Der Aufruf wird synchron verarbeitet.
  • Fehlerbehandlung: Die Schnittstelle meldet ausschließlich den erfolgreichen Abschluss; spezifische Fehlercodes oder Fehlermeldungen sind für diese Benachrichtigung im Element nicht definiert.

In Bezug auf Nebenläufigkeit ist Ea_JobEndNotification als nicht reentrant (Non Reentrant) spezifiziert [SWS_Ea_00094]. Aufrufer müssen daher sicherstellen, dass keine parallelen oder verschachtelten Aufrufe erfolgen. Interpretation: Die Funktion dürfte typischerweise durch einen unterlagerten Treiber aufgerufen werden, sobald dessen asynchrone Bearbeitung beendet ist, wobei der aufrufende Kontext vermutlich für die sequenzielle Abfolge ohne gegenseitige Verdrängung sorgen muss. Frage Q-296b61b743e7c9b8 (offen)

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR R20-11 generiert.

function Ea_JobErrorNotification [SWS_Ea_00095] 📄 PDF

void Ea_JobErrorNotification (void);

Service to report to this module the failure of an asynchronous operation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9e75b5e5784e Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Ea_JobErrorNotification dient als Benachrichtigungsschnittstelle, um dem Modul Ea den Fehler einer zuvor initiierten asynchronen Operation zu melden [SWS_Ea_00095]. Sie ist über die Header-Datei Ea.h verfügbar und besitzt die Service-ID 0x11 [SWS_Ea_00095].

Hinsichtlich der Schnittstellenspezifikation und Verwendung gelten folgende Eigenschaften:

  • Parameter und Rückgabewert: Die Funktion besitzt weder Übergabeparameter (weder in, out noch inout) noch einen Rückgabewert (Signatur void Ea_JobErrorNotification(void)) [SWS_Ea_00095].
  • Ausführungsverhalten und Reentranz: Der Aufruf wird synchron verarbeitet, ist jedoch als nicht reentrant (Non Reentrant) spezifiziert [SWS_Ea_00095]. Aufrufer müssen daher sicherstellen, dass Aufrufe sequenziell erfolgen und nicht durch parallele Kontexte überlappen.
  • Zusammenspiel: Da die Funktion das Scheitern eines asynchronen Auftrags signalisiert, dürfte der Aufruf typischerweise durch ein unterlagertes Hardware-Abstraktionsmodul bzw. einen Speichertreiber erfolgen, sobald ein Auftrag fehlschlägt (Interpretation). Frage Q-810e76dee987a5a1 (offen)

Spezifische Fehlercodes, Entwicklungsfehler (DET) oder Produktionsfehler (DEM) sind für diesen Service nicht definiert; ein gesondertes Fehlerverhalten für den Aufruf selbst wird im Element nicht spezifiziert.

Dieser Text wurde von einer KI erstellt. Alle fachlichen Aussagen basieren ausschließlich auf den Spezifikationsdaten aus AUTOSAR R20-11.

function Ea_MainFunction [SWS_Ea_00096] 📄 PDF

void Ea_MainFunction (void);

Service to handle the requested jobs and the internal management operations.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 982c19d62ccc Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion Ea_MainFunction dient der Bearbeitung angeforderter Aufträge sowie der Abwicklung interner Verwaltungsoperationen innerhalb des EEPROM-Abstraction-Moduls [SWS_Ea_00096]. Gemäß der Schnittstellendefinition void Ea_MainFunction(void) nimmt die Funktion keine Übergabeparameter entgegen und liefert keinen Rückgabewert an den Aufrufer zurück [SWS_Ea_00096].

Aufrufkontext und Nebenläufigkeit

Die Schnittstelle besitzt die Service-ID 0x12 und wird über die Header-Datei SchM_Ea.h deklariert [SWS_Ea_00096]. Interpretation: Aufgrund der Bereitstellung über SchM_Ea.h dürfte der Aufruf typischerweise zyklisch durch den Schedule Manager (BSW Scheduler) im Task-Kontext erfolgen, um die asynchrone Bearbeitung von Speicheraufträgen kontinuierlich im Hintergrund fortzuführen. Frage Q-23f33a40a1e08c34 (offen)

Fehlerbehandlung

Da Ea_MainFunction keinen Rückgabewert bereitstellt, werden Fehlerzustände oder der Auftragsfortschritt nicht direkt über den Funktionsaufruf übermittelt [SWS_Ea_00096]. Spezifische Fehlercodes sowie Anforderungen zur Meldung an das Entwicklungsschnittstellenmodul (DET) oder das Diagnosemodul (DEM) sind im vorliegenden Spezifikationsauszug nicht für diesen Dienst definiert.

Dieser Text wurde automatisch generiert. Alle Angaben basieren ausschließlich auf den Spezifikationsdaten des Release R20-11.

function NvM_JobEndNotification [SWS_Ea_00099] 📄 PDF

void NvM_JobEndNotification (void);

Function to be used by the underlying memory abstraction to signal end of job without error.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5f055de9eae0 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Callback-Funktion NvM_JobEndNotification dient gemäß [SWS_Ea_00099] der zugrunde liegenden Speicherabstraktion dazu, das erfolgreiche Ende eines Auftrags ohne Fehler an übergeordnete Module zu signalisieren. Der Dienst besitzt die Signatur void NvM_JobEndNotification(void); er erwartet weder Eingabe- noch Ein-/Ausgabeparameter und gibt keinen Wert zurück [SWS_Ea_00099]. Die Ausführung ist synchron spezifiziert, und die Schnittstelle wird über die Header-Datei NvM_MemIf.h bereitgestellt [SWS_Ea_00099].

Nebenläufigkeit und Aufrufbedingungen

In Bezug auf das Laufzeitverhalten ist NvM_JobEndNotification als nicht reentrant (Non Reentrant) eingestuft [SWS_Ea_00099]. Aufrufende Instanzen müssen deshalb sicherstellen, dass die Benachrichtigung nicht unterbrechend oder parallel aus mehreren Kontexten aufgerufen wird. Interpretation: Die Speicherabstraktionsschicht dürfte die Funktion typischerweise im Rahmen ihrer zyklischen Hauptfunktion oder nach Abschluss eines asynchronen Treiberauftrags ausführen, sobald feststeht, dass die Operation fehlerfrei beendet wurde. Frage Q-adabc07be0a3e7d2 (offen)

Fehlerbehandlung und Zusammenspiel

Für diese Benachrichtigungsfunktion sind in [SWS_Ea_00099] weder spezifische Fehlercodes noch Entwicklungsfehler (DET) oder Produktionsfehler (DEM) definiert. Dies begründet sich darin, dass der Aufruf ausschließlich die fehlerfreie Beendigung eines Auftrags anzeigt [SWS_Ea_00099]. Tritt während eines Speicherauftrags ein Fehler auf, wird diese Benachrichtigung nicht aufgerufen.

Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.

function NvM_JobErrorNotification [SWS_Ea_00100] 📄 PDF

void NvM_JobErrorNotification (void);

Function to be used by the underlying memory abstraction to signal end of job with error.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6fbe1fe6a235 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Benachrichtigungsfunktion NvM_JobErrorNotification wird von der unterliegenden Speicherabstraktion (Memory Abstraction) genutzt, um den fehlerhaften Abschluss eines Auftrags an den NVRAM Manager zu melden [SWS_Ea_00100]. Die Deklaration dieser Schnittstelle wird über die Header-Datei NvM_MemIf.h zur Verfügung gestellt [SWS_Ea_00100].

Für den Aufruf und die Einbindung der Schnittstelle gelten die folgenden Eigenschaften gemäß Spezifikation [SWS_Ea_00100]:

  • Signatur und Syntax: Die Funktion besitzt die Signatur void NvM_JobErrorNotification (void) [SWS_Ea_00100].
  • Parameter und Rückgabewerte: Die Funktion besitzt weder Eingabeparameter (Parameters (in): None), Ein-/Ausgabeparameter (Parameters (inout): None) noch Ausgabeparameter (Parameters (out): None) und gibt keinen Wert zurück (Return value: None) [SWS_Ea_00100].
  • Synchronizität: Der Aufruf ist als synchron (Synchronous) spezifiziert [SWS_Ea_00100].
  • Nebenläufigkeit: Die Funktion ist als nicht reentrant (Non Reentrant) festgelegt [SWS_Ea_00100]. Entsprechende Aufrufe aus der Speicherabstraktion dürfen somit nicht nebenläufig oder überlappend erfolgen.

Spezifische Fehlercodes, Parameter zur Fehlerdifferenzierung oder Anforderungen an Benachrichtigungen an das Default Error Tracer (DET) oder das Diagnostic Event Manager (DEM) Modul sind in der Definition nicht enthalten [SWS_Ea_00100]. Die Funktion dient ausschließlich als reine Statusmeldung über das mit einem Fehler beendete Job-Ergebnis [SWS_Ea_00100].

Dieser Nutzungshinweis wurde automatisiert generiert und stützt sich ausschließlich auf die Spezifikation von AUTOSAR Classic R20-11.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Ea
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Ea@rel:R20-11#f80fbf9c
Content hash
f80fbf9c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EEPROMAbstraction.pdf#nameddest=SWS_Ea_00084

Initialisierung und Status

Ea_GetStatus function

Service to return the Status.

MemIf_StatusType Ea_GetStatus (void);

Service to get the version information of this module.

void Ea_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Ea_Init function

Initializes the EEPROM abstraction module.

void Ea_Init (const Ea_ConfigType* ConfigPtr);

Dienste

Ea_Cancel function

Cancels the ongoing asynchronous operation.

void Ea_Cancel (void);

Erases the block Block Number.

Std_ReturnType Ea_EraseImmediateBlock (uint16 BlockNumber);

Service to return the Job Result.

MemIf_JobResultType Ea_GetJobResult (void);

Invalidates the block Block Number.

Std_ReturnType Ea_InvalidateBlock (uint16 BlockNumber);

Service to report to this module the successful end of an asynchronous operation.

void Ea_JobEndNotification (void);

Service to report to this module the failure of an asynchronous operation.

void Ea_JobErrorNotification (void);
Ea_Read function

Reads Length bytes of block Blocknumber at offset Block Offset into the buffer Data Buffer Ptr.

Std_ReturnType Ea_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Ea_SetMode function

Function to switch the mode of the underlying EEPROM Driver

void Ea_SetMode (MemIf_ModeType Mode);
Ea_Write function

Writes the contents of the Data Buffer Ptr to the block Block Number.

Std_ReturnType Ea_Write (uint16 BlockNumber, const uint8* DataBufferPtr);

Function to be used by the underlying memory abstraction to signal end of job without error.

void NvM_JobEndNotification (void);

Function to be used by the underlying memory abstraction to signal end of job with error.

void NvM_JobErrorNotification (void);

Zyklisch

Service to handle the requested jobs and the internal management operations.

void Ea_MainFunction (void);

Typen

Configuration data structure of the Ea module.