DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-dd1792d93bd0b632 901 × 775 px 1 Release(s)

Figure 17: UML sequence diagram for asynchronous call with callback

SHA-256 Inhalts-Fingerabdruck: dd1792d93bd0b632c933cd9dd8b757d95658d688fa80f7ca9a6a6e30b943213d
✦ 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 Asychronous Call w ith Callback) im Kontext der AUTOSAR-Basissoftware (NVRAM Manager / NvM). Dargestellt wird die asynchrone Auftragsverarbeitung eines Schreibauftrags mit Callback-Benachrichtigung zwischen einem NvM-Nutzer, dem BSW-Scheduler und dem NvM-Modul. Unten links ist ein Metadatenblock (Status: Proposed by TO as per NvM SWS 2.0.7 / Description: / Comments:) integriert.

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Lebenslinien:

  • BSW Task (OS task or cyclic call): Dargestellt mit Zyklus-Symbol; triggert zyklisch die Hauptfunktion des NvM.
  • Generic Elements::NvM User: Anfordernder BSW- oder SWC-Nutzer und Empfänger des Callbacks.
  • «module» NvM::NvM: NVRAM-Manager-Modul.

Schnittstellen und Operationen:

  • NvM_WriteBlock(return, BlockId, NvM_SrcPtr) : Std_ReturnType / Antwort NvM_WriteBlock.
  • NvM_MainFunction() / Antwort NvM_MainFunction.
  • SingleBlockCallbackFunction(return, ServiceId, JobResult) : Std_ReturnType mit Stereotyp <SingleBlockJobEndNotification>.
  • NvM_GetErrorStatus(BlockId, RequestResultPtr) : NvM_RequestResultType / Antwort NvM_GetErrorStatus.

3. Dynamisches Verhalten & Sequenzablauf

  1. NvM User ruft NvM_WriteBlock(return, BlockId, NvM_SrcPtr) : Std_ReturnType auf. Der NvM prüft und speichert den Auftrag, hinterlegt die Callback-Adresse aus dem NVRAM-Block-Deskriptor, setzt den Auftragsstatus auf NVM_REQ_PENDING und kehrt zum Aufrufer zurück.
  2. Der BSW Task führt die Schleife loop Job processing ([repeat until writing of block is completed]) aus und ruft zyklisch NvM_MainFunction() auf. Die Daten werden schrittweise asynchron ins NVRAM geschrieben. Währenddessen bleibt der Auftragsstatus NVM_REQ_PENDING.
  3. Nach Abschluss des Schreibvorgangs ruft der BSW Task erneut NvM_MainFunction() auf. Aus diesem Kontext heraus ruft der NvM die Rückruffunktion SingleBlockCallbackFunction(return, ServiceId, JobResult) : Std_ReturnType (<SingleBlockJobEndNotification>) auf dem NvM User auf.
  4. Bei erfolgreichem Abschluss steht das Auftragsergebnis auf NVM_REQ_OK.
  5. NvM User fragt über NvM_GetErrorStatus(BlockId, RequestResultPtr) : NvM_RequestResultType den finalen Status ab.

4. Normative Relevanz & Entwickler-Hinweise

Die Benachrichtigung erfolgt spezifisch über die im Blockdeskriptor konfigurierte Einzelblock-Rückruffunktion (SingleBlockCallbackFunction), welcher ServiceId und JobResult übergeben werden. Entwickler müssen sicherstellen, dass die Callback-Funktion reentrant und ressourcenschonend implementiert ist, da sie im Kontext von NvM_MainFunction (BSW Task) ausgeführt wird.

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

R2.1.20 → R3.0.7 normative Änderung Vorgänger: FIG-cb39b272e9de20bd
  • Lebenslinien/Rollen: Scheduler (OS task or cyclic call) wird zu BSW Task (OS task or cyclic call) mit zyklischem Task-Symbol; SW Component (from Interaction Views) wird zu Generic Elements::NvM User; Nv M::Nv M wird zu «module» NvM::NvM.
  • Aufruf- und Rückgabesyntax: Zuweisungssyntax (Std_ReturnType:= NvM_WriteBlock(...)) wird durch C-/UML-Signatur mit Rückgabetyp am Ende ersetzt (NvM_WriteBlock(return,BlockId,NvM_SrcPtr) :Std_ReturnType).
  • Callback-Funktion: Die unspezifische Benachrichtigung JobEndNotification wird als Callback SingleBlockCallbackFunction(return,ServiceId,JobResult) :Std_ReturnType mit Stereotyp bzw. Benachrichtigungsbezug <SingleBlockJobEndNotification> spezifiziert.
  • Fehlerstatus-Abfrage: NvM_RequestResultType:= NvM_GetErrorStatus(...) wird zu NvM_GetErrorStatus(BlockId,RequestResultPtr) : NvM_RequestResultType.
  • Metadaten-Notiz: Notizblock Status: Proposed by TO as per NvM SWS 2.0.7 / Description: / Comments: unten links hinzugefügt.
R3.1.5 → R3.2.3 normative Änderung Nachfolger: FIG-99d36d74abf8abdd
  • 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().

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sd Asychronous Call w ith Callback | «module» | NvM::NvM | Generic Elements::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] | Status: Proposed by TO as per NvM SWS 2.0.7 | Description: | Comments: | NvM_WriteBlock(return,BlockId,NvM_SrcPtr) :Std_ReturnType | NvM_WriteBlock | NvM_MainFunction() | NvM_MainFunction | NvM_MainFunction() | SingleBlockCallbackFunction(return,ServiceId,JobResult) :Std_ReturnType | <SingleBlockJobEndNotification> | NvM_MainFunction | NvM_GetErrorStatus(BlockId,RequestResultPtr) : NvM_RequestResultType | NvM_GetErrorStatus

Vorkommen in AUTOSAR-Releases (1)

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