AUTOSAR_SWS_NVRAMManager
FIG-f2984c8bef1e8670
734 × 461 px
2 Release(s)
Figure 14: UML sequence diagram NvM_GetErrorStatus
SHA-256 Inhalts-Fingerabdruck:
f2984c8bef1e86708501f1e64c4c3687622dafbbb7dd49506f31fdf44894f4b2
✦
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 (
sd NvM_GetErrorStatus). - Funktionale Einordnung: AUTOSAR Classic Platform, Basic Software (BSW), System Services Layer.
- Technischer Zweck: Visualisierung des synchronen Abfragedienstes für den Bearbeitungs- und Fehlerstatus eines NVRAM-Blocks (
NvM_GetErrorStatus). Der NVRAM Manager (NvM) stellt damit oberen Schichten (Software Components bzw. BSW-Modulen) einen direkten Statuszugriff auf administrative Blockdaten bereit, ohne asynchrone Treiberoperationen (MemIf/FEE/EA) auszulösen.
2. Komponenten, Entitäten & Schnittstellen
- Beteiligte Instanzen (Lifelines):
Generic Elements::NvM User(User): Repräsentiert den NvM-Nutzer / Service-Nutzer aus dem PaketGeneric Elements::NvM(ASW-Komponente oder BSW-Modul).«module» NvM::NvM: BSW-Modul NVRAM Manager, nun explizit mit dem Stereotyp«module»versehen. Das Dekompositionssymbol (zwei verbundene Kreise) in der Kopfzeile kennzeichnet ein dekomponiertes Teilsystem.
- Schnittstellen & Signaturen:
- Aufruf:
NvM_GetErrorStatus(BlockId,RequestResultPtr)BlockId(In): Eindeutige Kennung des NVRAM-Blocks.RequestResultPtr(Out): Zeiger auf die Zielvariable zur Aufnahme des Anfrageergebnisses (NvM_RequestResultType).
- Rückgabewert (Return Message):
NvM_GetErrorStatus(synchrone Rückkehr der Ausführung mitStd_ReturnType).
- Aufruf:
- Zusätzliche Diagrammelemente:
- UML-Notiz (Note): Dokumentationsnotiz mit den Feldern
Status: Proposed by TO as per NvM SWS 1.44,Description:undComments:.
- UML-Notiz (Note): Dokumentationsnotiz mit den Feldern
3. Dynamisches Verhalten & Sequenzablauf
- Aufruftrigger: Die
SW Componentinitiiert den synchronen FunktionsaufrufNvM_GetErrorStatusblockierend über das RTE-Service-Interface (Client-Server) oder per direktem C-API-Call. - Interne Ausführung (NvM):
- Prüfung: Validierung von Initialisierungszustand (
NVM_UNINITführt bei DET-Aktivierung zuNVM_E_UNINIT), Block-ID-Gültigkeit (NVM_E_PARAM_BLOCK_ID) und Gültigkeit des Übergabepointer (NVM_E_PARAM_DATA). - Datenzugriff: Direkter Lesezugriff auf das RAM-basierte administrative Block-Array (
NvM_AdminBlockTable[BlockId].NvMResult). Es findet keine Kommunikation mit Hardware-Treibern (MemIf,Fee,Ea) statt. - Schreiboperation: Übertrag des aktuellen Status in die durch
RequestResultPtrreferenzierte Speicheradresse.
- Prüfung: Validierung von Initialisierungszustand (
- Rückkehr (Return Message): Synchrone Rückkehr der Ausführung an den Aufrufer mit Rückgabewert
E_OK(bzw.E_NOT_OKbei fehlgeschlagener Plausibilisierung).
4. Normative Relevanz & Entwickler-Hinweise
- Synchroner Kontrakt: Die API ist strikt synchron und non-blocking bezüglich Flash/EEPROM-Laufzeiten. Sie darf aus Task-Kontexten aufgerufen werden, ohne Latenzen der Peripherietreiber zu erben.
- Mögliche Statuswerte (
NvM_RequestResultType):NVM_REQ_OK: Letzte asynchrone Operation (Read/Write/Restore/Validate) erfolgreich abgeschlossen.NVM_REQ_NOT_OK: Letzte Operation fehlgeschlagen.NVM_REQ_PENDING: Eine asynchrone Operation für diesen Block ist noch in der NvM-Queue oder in Bearbeitung.NVM_REQ_INTEGRITY_FAILED: CRC-Fehler oder Redundanzprüfung fehlgeschlagen.NVM_REQ_BLOCK_SKIPPED: Block wurde bei Multi-Block-Abarbeitung (NvM_ReadAll/NvM_WriteAll) übersprungen.NVM_REQ_NV_INVALIDATED: Block wurde explizit überNvM_InvalidateNvBlockungültig deklariert.NVM_REQ_CANCELED: Anforderung wurde abgebrochen (z. B. viaNvM_CancelJobs).
- Reentranz: Die Funktion ist reentrant ausgelegt. Bei nebenläufigem Zugriff auf denselben Block über unterschiedliche OS-Tasks muss der Aufrufer bzw. der NvM-Treiber atomare Lese-/Schreibzugriffe auf das administrative Zustandsfeld sicherstellen.
- Poling-Muster: Wird typischerweise zur Überwachung von asynchron gestarteten Aufträgen (
NvM_ReadBlock,NvM_WriteBlock,NvM_EraseNvBlock) genutzt, falls keine asynchronen Job-Finished-Callbacks (NvM_SingleBlockCallbackFunction) konfiguriert sind.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.