DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-c79a7cb11af85a87 867 × 638 px 1 Release(s)

Figure 19: UML sequence diagram for asynchronous call with callback

SHA-256 Inhalts-Fingerabdruck: c79a7cb11af85a878d91aa8215b9749b8eada84797c27c384201eeceae0436d4
✦ 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) ohne Callback-Mechanismus, basierend auf zyklischem Status-Polling durch den NvM-Nutzer.

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Lebenslinien:

  • BSW Task (OS task or cyclic call): Zyklischer Task zur periodischen Ausführung der Hauptfunktion.
  • NvM User: Aufrufer der Schreib- und Statusabfragedienste.
  • «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_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType**) / Antwort NvM_GetErrorStatus().

3. Dynamisches Verhalten & Sequenzablauf

  1. NvM User ruft NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const void*) auf. Der NvM prüft und speichert den Auftrag, setzt das Ergebnis auf NVM_REQ_PENDING und kehrt sofort zurück.
  2. In der Schleife loop Job processing ([repeat until writing of block is completed]) ruft BSW Task zyklisch NvM_MainFunction() auf, um die Datenblöcke asynchron ins NVRAM zu übertragen. Parallel bzw. im gleichen Verarbeitungszyklus fragt NvM User über NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType**) den Status ab, der während des Schreibens weiterhin NVM_REQ_PENDING liefert.
  3. Nach Beendigung des Schreibvorgangs und erfolgreichem Abschluss (Job-Resultat NVM_REQ_OK) fragt NvM User nach der Schleife erneut NvM_GetErrorStatus(...) ab und erhält das finale Ergebnis NVM_REQ_OK. Ein Rückruf an den Nutzer findet nicht statt.

4. Normative Relevanz & Entwickler-Hinweise

Der Ablauf basiert rein auf Polling: Der Nutzer überwacht das Ende der asynchronen Bearbeitung durch wiederholte Aufrufe von NvM_GetErrorStatus. Der Datenzeiger bei NvM_WriteBlock ist typneutral als const void* deklariert. Der Ergebniszeiger bei NvM_GetErrorStatus ist als Doppelzeiger (NvM_RequestResultType**) notiert.

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

R3.2.3 → R4.0.3 normative Änderung Vorgänger: FIG-99d36d74abf8abdd
  • Callback-Entfall: Der asynchrone Callback SingleBlockCallbackFunction bzw. <SingleBlockJobEndNotification>() sowie der zugehörige Kommentar („Writing of Block completed. Call Job End Notification“) entfallen vollständig.
  • Statusabfrage im Zyklus: Innerhalb der Schleife loop Job processing fragt NvM User jetzt aktiv NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType**) ab; nach Schleifenende erfolgt eine weitere Abfrage desselben Aufrufs (Polling-Muster).
  • Zeiger-Typisierung bei NvM_WriteBlock: Datenzeiger von const uint8* auf typneutralen Zeiger const void* geändert.
  • Signatur NvM_GetErrorStatus: Rückgabetyp und Parameter angepasst auf NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType**).
  • Kommentar zur Anfrage: Kommentartext verkürzt auf „Comment: Check and store request. Set job result to NVM_REQ_PENDING“ (Hinweis auf Callback-Adresse im Block-Deskriptor entfällt).
  • Metadaten/Header: Diagrammrahmen sd sowie der Versions-/Status-Notizblock unten links entfallen.
R4.0.3 → R4.1.3 normative Änderung Nachfolger: FIG-bfd74dfcedbbee5b
  • 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.

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: Check and store request. Set job result to NVM_REQ_PENDING | 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: 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_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType**) | NvM_GetErrorStatus() | NvM_GetErrorStatus(Std_ReturnType, NvM_BlockIdType, NvM_RequestResultType**) | NvM_GetErrorStatus()

Vorkommen in AUTOSAR-Releases (1)

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