AUTOSAR_SWS_NVRAMManager
FIG-bf3503e5e2e06820
866 × 692 px
1 Release(s)
Figure 20: NvM interraction with BswM in case of a single block operation
SHA-256 Inhalts-Fingerabdruck:
bf3503e5e2e06820a72672b234d2366591403ec332b44f6feee04a8da1d55ab2
✦
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 mit kombinierten Fragmenten /
loop-Operand). - Architektur-Kontext: AUTOSAR Classic Platform (Release R4.3.1), BSW System Services Layer.
- Technischer Zweck: Spezifikation des asynchronen Interaktionsmusters zwischen dem Anforderer (
NvM User), dem NVRAM Manager (NvM), dem Basic Software Mode Manager (BswM) und dem OS-Ablaufkontext (BSW Task) bei Durchführung einer Einzelblock-Operation (z. B.NvM_ReadBlock,NvM_WriteBlock,NvM_RestoreBlockDefaults). Es visualisiert das zweistufige Meldekonzept an den BswM (Request-Registrierung vs. Job-Terminierung).
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Lebenslinien:
BSW Task (OS task or cyclic call): Periodischer Ausführungskontext des Betriebssystems zur zyklischen Abarbeitung der BSW-Hauptfunktionen.«module» BswM: AUTOSAR Basic Software Mode Manager; empfängt Block-Zustandswechsel zur Mode Arbitration und Regelauswertung (z. B. ECU-Shutdown- oder Startup-Bedingungen).«module» NvM: AUTOSAR NVRAM Manager; steuert die Block-Zustandsmaschine und die asynchrone Auftragsverarbeitung über den Memory Abstraction Interface Stack (MemIf/Fee/Ea).NvM User: Anfordernde Entität (Software Component via RTE-Service-Port oder BSW-Modul wie DCM, DEM).
- Schnittstellen & Parameter:
Single block request(): Repräsentiert die asynchrone API-Familie für Einzelblöcke (NvM_ReadBlock(),NvM_WriteBlock(), etc.).BswM_NvM_CurrentBlockMode(Block, Mode): Normierte BswM-Serviceschnittstelle.- Parameter
Block: Block-ID (NvM_BlockIdType). - Parameter
Mode / JobResult: Auftragsstatus (NvM_RequestResultType:NVM_REQ_PENDING,NVM_REQ_OK,NVM_REQ_NOT_OK,NVM_REQ_INTEGRITY_FAILEDetc.).
- Parameter
NvM_MainFunction(): Polling-/Scheduler-Einsprungpunkt des NvM.SingleBlockCallback(JobResult): Optionaler, blockindividueller Anwender-Callback (NvMSingleBlockCallbackFunction).
3. Dynamisches Verhalten & Sequenzablauf
- Auftragsinitiierung (synchron im Kontext des NvM Users):
- Der
NvM Userruft eine Einzelblock-API auf (Single block request()). - Der
NvMvalidiert die Parameter, reiht den Job in die interne Queue ein und signalisiert dem BswM unverzüglich den Statuswechsel viaBswM_NvM_CurrentBlockMode(Block, NVM_REQ_PENDING). - Der Aufruf kehrt synchron mit Rückgabewert (Standard
E_OK) zumNvM Userzurück.
- Der
- Asynchrone Abarbeitung (
loop While block is still being processed):- Die
BSW Tasktriggert periodischNvM_MainFunction(). - Solange die Hardware-Transaktionen (via MemIf/Fee/Fls bzw. Ea/Eep) laufen, führt
NvM_MainFunction()Zwischenschritte der internen Statemachine aus, ohne Statusänderungen nach außen zu propagieren.
- Die
- Auftragsabschluss & Notifikation:
- Im finalen
NvM_MainFunction()-Zyklus wird das Job-Endergebnis ermittelt (Hinweis: Der Kommentar „Multi block operation finishes in this call“ im Schaubild ist ein bekannter redaktioneller Spezifikationsfehler/Copy-Paste-Artefakt aus Figure 20; technisch vollendet hier die Single-Block-Operation). NvMmeldet das finale Ergebnis synchron an den BswM:BswM_NvM_CurrentBlockMode(Block, JobResult).- Sofern konfiguriert, wird der anwenderspezifische Callback
SingleBlockCallback(JobResult)ausgeführt. NvM_MainFunction()terminiert und kehrt in dieBSW Taskzurück.
- Im finalen
4. Normative Relevanz & Entwickler-Hinweise
- Konfigurationsabhängigkeit (
NvMBswMBlockStatusInformation):- Der Aufruf von
BswM_NvM_CurrentBlockMode()erfolgt nur, wenn im jeweiligenNvMBlockDescriptordas KonfigurationsattributNvMBswMBlockStatusInformation == TRUEgesetzt ist. Fehlt dieses Flag, erfolgt keine BswM-Benachrichtigung für diesen Block.
- Der Aufruf von
- Kontextwechsel & Laufzeitverhalten:
- Startphase: Die Meldung
NVM_REQ_PENDINGan den BswM erfolgt direkt im Ausführungskontext des Aufrufers (NvM User Task). Dies kann unmittelbare BswM-Regelauswertungen und Aktionen zur Folge haben (Vermeidung langer BswM-Aktionslisten im Anwenderkontext beachten). - Endphase: Das Endergebnis (
JobResult) an BswM und derSingleBlockCallbackwerden im Kontext derBSW Task(NvM_MainFunction) aufgerufen. Callbacks müssen streng nicht-blockierend ausgelegt sein, um die BSW-Task-Zykluszeit nicht zu verletzen.
- Startphase: Die Meldung
- Fehlerbehandlung:
- Schlägt die initiale Validierung fehl (Rückgabe
E_NOT_OK), wird der Job weder gequeued noch wirdBswM_NvM_CurrentBlockMode(..., NVM_REQ_PENDING)aufgerufen. - Bricht ein Job hardwarebedingt ab oder schlägt die CRC-Prüfung fehl, spiegelt
JobResultden Fehlercode wider (NVM_REQ_NOT_OKbzw.NVM_REQ_INTEGRITY_FAILED), worauf der BswM spezifische Recovery-Strategien anstoßen kann.
- Schlägt die initiale Validierung fehl (Rückgabe
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.