DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-bfd74dfcedbbee5b 870 × 653 px 1 Release(s)

Figure 19: UML sequence diagram for asynchronous call with callback

SHA-256 Inhalts-Fingerabdruck: bfd74dfcedbbee5be3db0e42c5076f182cad58ffad2ed395a4b6198a3d2e10db
✦ 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

UML-Sequenzdiagramm zur asynchronen Auftragsverarbeitung im NVRAM Manager (NvM) mit Einzelblock-Callback-Benachrichtigung und abschließender Statusabfrage.

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Lebenslinien:

  • BSW Task (OS task or cyclic call): Periodischer Ausführungstask für BSW-Funktionen.
  • NvM User: Verwender der NvM-Dienste und Empfänger des Callbacks.
  • «module» NvM: NVRAM-Manager-Modul.

Schnittstellen und Signaturen:

  • NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const void*) / Antwort NvM_WriteBlock().
  • NvM_MainFunction() / Antwort NvM_MainFunction().
  • NvM_SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) mit Referenz <SingleBlockJobEndNotification>().
  • NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType*) / Antwort NvM_GetErrorStatus().

3. Dynamisches Verhalten & Sequenzablauf

  1. NvM User stößt den Schreibauftrag mit NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const void*) an. Der NvM speichert Auftrag und Callback-Adresse aus dem NVRAM-Blockdeskriptor, setzt den Status auf NVM_REQ_PENDING und bestätigt mit NvM_WriteBlock().
  2. In der Schleife loop Job processing ([repeat until writing of block is completed]) ruft BSW Task periodisch NvM_MainFunction() auf. Die Daten werden asynchron ins NVRAM geschrieben.
  3. Nach Abschluss des Schreibvorgangs ruft BSW Task erneut NvM_MainFunction() auf. Der NvM benachrichtigt den Nutzer über den Funktionsaufruf NvM_SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) (<SingleBlockJobEndNotification>()).
  4. Nach erfolgreichem Schreiben wird der Status auf NVM_REQ_OK gesetzt.
  5. NvM User ruft NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType*) auf, um den Status abzufragen.

4. Normative Relevanz & Entwickler-Hinweise

Die Benachrichtigung erfolgt über den standardisierten Callback NvM_SingleBlockCallbackFunction, wodurch zyklisches Polling vermieden wird. Der Ausgabeparameter von NvM_GetErrorStatus ist als einfacher Zeiger NvM_RequestResultType* typisiert, der Datenzeiger für den Schreibpuffer als const void*.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R4.0.3 → R4.1.3 normative Änderung Vorgänger: FIG-c79a7cb11af85a87
  • Wiedereinführung des Callbacks: Nach Abschluss der asynchronen Bearbeitung ruft NvM die Callback-Funktion NvM_SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) auf Lebenslinie NvM User auf, mit Antwort <SingleBlockJobEndNotification>().
  • Rücknahme des zyklischen Pollings: Der Aufruf von NvM_GetErrorStatus innerhalb von loop Job processing entfällt; die Statusabfrage erfolgt nur noch einmalig nach Abschluss.
  • Signatur NvM_GetErrorStatus: Der Ergebniszeiger wird von Doppelzeiger NvM_RequestResultType** auf einfachen Zeiger NvM_RequestResultType* korrigiert.
  • Kommentare: Kommentar „Comment: Check and store request. Callback address is stored in the NVRAM block descriptor. Set job result to NVM_REQ_PENDING.“ sowie Kommentar „Comment: Writing of Block completed. Call Job End Notification“ wieder eingefügt.
R4.1.3 → R4.2.2 keine inhaltliche Änderung Nachfolger: FIG-f0204ac19e41c118

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | NvM | NvM User | BSW Task (OS task | or cyclic call) | Comment: Job processing (writing NVRAM) is done asynchronously. | Data unit by data unit is written to NVRAM (e.g. 1 byte every 10 ms, both depending on NVRAM hardware). | During writing of data job result is still NVM_REQ_PENDING | Comment: Check and store request. Callback address is stored in the NVRAM block descriptor. Set job result to NVM_REQ_PENDING. | Comment: Writing of Block completed. Call Job End Notification | Comment: Writing of Block completed successfully. Job result will be NVM_REQ_OK | loop Job processing | [repeat until writing of block is completed] | NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const void*) | NvM_WriteBlock() | NvM_MainFunction() | NvM_MainFunction() | NvM_MainFunction() | NvM_SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) | <SingleBlockJobEndNotification>() | NvM_MainFunction() | NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType*) | NvM_GetErrorStatus()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.1.3 AUTOSAR_SWS_NVRAMManager S. 152 19 Figure 19: UML sequence diagram for asynchronous call with callback