DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-99d36d74abf8abdd 905 × 775 px 1 Release(s)

Figure 17: UML sequence diagram for asynchronous call with callback

SHA-256 Inhalts-Fingerabdruck: 99d36d74abf8abdd653dab17d177fe0fd55f1716b0624cf0ea25b1528c02c767
✦ 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 (sd NvM_Asychronous Call with Callback) im Kontext der AUTOSAR-Basissoftware (NVRAM Manager / NvM). Dargestellt wird die asynchrone Ausführung von NvM_WriteBlock mit Callback-Benachrichtigung unter Verwendung formalisierter AUTOSAR-Datentypen. Unten links befindet sich ein Metadatenblock bezüglich Spezifikationsstatus.

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Lebenslinien:

  • BSW Task (OS task or cyclic call): Zyklischer Task zur Ausführung der BSW-Hauptfunktionen.
  • NvM User: Verwender der NvM-Dienste.
  • «module» NvM: NVRAM-Manager-Modul.

Schnittstellen und Signaturen:

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

3. Dynamisches Verhalten & Sequenzablauf

  1. NvM User setzt die Anforderung über NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const uint8*) ab. NvM speichert die Anforderung und Callback-Adresse, setzt den Job-Status auf NVM_REQ_PENDING und bestätigt mit NvM_WriteBlock().
  2. Innerhalb der Schleife loop Job processing ([repeat until writing of block is completed]) triggert BSW Task wiederholt NvM_MainFunction(). Daten werden häppchenweise asynchron geschrieben; der Status verbleibt auf NVM_REQ_PENDING.
  3. Nach Abschluss des Schreibvorgangs ruft BSW Task erneut NvM_MainFunction() auf, woraufhin der NvM den Callback SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) (<SingleBlockJobEndNotification>()) auf NvM User ausführt.
  4. Bei erfolgreichem Abschluss geht der Status auf NVM_REQ_OK über.
  5. NvM User liest das Ergebnis via NvM_GetErrorStatus(NvM_BlockIdType, uint8*) : NvM_RequestResultType aus.

4. Normative Relevanz & Entwickler-Hinweise

Die Schnittstellensignaturen verwenden standardisierte AUTOSAR-Basistypen (NvM_BlockIdType, const uint8*, NvM_RequestResultType). Die Callback-Funktion signalisiert das Ergebnis direkt über den Parameter NvM_RequestResultType. Der Pufferzeiger in NvM_WriteBlock ist als Zeiger auf Byte-Array (const uint8*) typisiert.

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

R3.1.5 → R3.2.3 normative Änderung Vorgänger: FIG-dd1792d93bd0b632
  • Diagrammrahmen: Header von sd Asychronous Call w ith Callback zu sd NvM_Asychronous Call with Callback geändert.
  • Lebenslinien-Benennung: Generic Elements::NvM User zu NvM User verkürzt; «module» NvM::NvM zu «module» NvM.
  • Signatur NvM_WriteBlock: Parameter und Rückgabetyp werden streng typisiert (NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const uint8*)), Antwortnachricht mit Klammern NvM_WriteBlock().
  • Signatur Callback: SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) mit <SingleBlockJobEndNotification>().
  • Signatur NvM_GetErrorStatus: Parameter geändert zu NvM_GetErrorStatus(NvM_BlockIdType, uint8*) : NvM_RequestResultType mit Antwort NvM_GetErrorStatus().
  • MainFunction-Rückkehr: Antwortnachrichten erhalten explizite Klammern NvM_MainFunction().
R3.2.3 → R4.0.3 normative Änderung Nachfolger: FIG-c79a7cb11af85a87
  • 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.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sd NvM_Asychronous Call with Callback | «module» | NvM | BSW Task (OS task or cyclic call) | NvM User | 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] | Status: Proposed by TO as per NvM SWS 2.0.7 | Description: | Comments: | NvM_WriteBlock(Std_ReturnType, NvM_BlockIdType, const uint8*) | NvM_WriteBlock() | NvM_MainFunction() | NvM_MainFunction() | NvM_MainFunction() | SingleBlockCallbackFunction(Std_ReturnType, uint8, NvM_RequestResultType) | <SingleBlockJobEndNotification>() | NvM_MainFunction() | NvM_GetErrorStatus(NvM_BlockIdType, uint8*) : NvM_RequestResultType | NvM_GetErrorStatus()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R3.2.3 AUTOSAR_SWS_NVRAMManager S. 99 17 Figure 17: UML sequence diagram for asynchronous call with callback