DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-cb39b272e9de20bd 924 × 735 px 1 Release(s)

Figure 17: UML sequence diagram for asynchronous call with callback

SHA-256 Inhalts-Fingerabdruck: cb39b272e9de20bd136afa67a422f99e652ac8574a572450e936d4aea0c504b2
✦ 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). Das Diagramm veranschaulicht das Zusammenspiel zwischen einer Software-Komponente (SW-C), dem NVRAM Manager (Nv M::Nv M) und dem Scheduler (Betriebssystem-Task oder zyklischer Aufruf) bei der asynchronen Abarbeitung eines Schreibauftrags mit anschließender Benachrichtigung über einen Callback.

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Lebenslinien:

  • Scheduler (OS task or cyclic call): Triggerquelle für die zyklische Ausführung der Hintergrundaufgaben.
  • SW Component (from Interaction Views): Aufrufer der NVRAM-Dienste und Empfänger der Callback-Benachrichtigung.
  • Nv M::Nv M: Das Basissoftwaremodul NVRAM Manager.

Schnittstellen und Operationen:

  • Std_ReturnType:= NvM_WriteBlock(BlockId, NvM_SrcPtr) / Antwort NvM_WriteBlock: Asynchroner Aufruf zum Schreiben eines NVRAM-Blocks.
  • NvM_MainFunction / Antwort NvM_MainFunction: Zyklische Verarbeitungsfunktion des NvM, aufgerufen durch den Scheduler.
  • JobEndNotification / Antwort JobEndNotification: Rückruf zur Signalisierung des Auftragsendes an die SW-Komponente.
  • NvM_RequestResultType:= NvM_GetErrorStatus(BlockId, RequestResultPtr) / Antwort NvM_GetErrorStatus: Synchrone Status- und Ergebnisabfrage des NVRAM-Blocks.

3. Dynamisches Verhalten & Sequenzablauf

  1. Die SW Component initiiert den Schreibauftrag durch Aufruf von NvM_WriteBlock(BlockId, NvM_SrcPtr). Der NvM prüft und speichert den Auftrag, hinterlegt die Callback-Adresse aus dem NVRAM-Block-Deskriptor, setzt das Auftragsergebnis auf NVM_REQ_PENDING und kehrt mit Std_ReturnType zurück.
  2. In der Schleife loop Job processing mit der Bedingung [repeat until writing of block is completed] ruft der Scheduler wiederholt NvM_MainFunction auf. Die Daten werden schrittweise asynchron ins NVRAM geschrieben (z. B. 1 Byte alle 10 ms). Während des Schreibvorgangs verbleibt das Ergebnis auf NVM_REQ_PENDING.
  3. Nach Beendigung des eigentlichen Schreibvorgangs führt ein weiterer Aufruf von NvM_MainFunction durch den Scheduler dazu, dass der NvM die JobEndNotification an die SW Component sendet.
  4. Bei erfolgreichem Abschluss wird der Auftragsstatus im NvM auf NVM_REQ_OK gesetzt.
  5. Die SW Component ruft abschließend synchron NvM_GetErrorStatus(BlockId, RequestResultPtr) auf, um das finale Ergebnis abzufragen.

4. Normative Relevanz & Entwickler-Hinweise

Das Diagramm verdeutlicht die Trennung von Auftragsinitiierung (nicht-blockierend) und eigentlicher Ein-/Ausgabe im Kontext von NvM_MainFunction. Die SW-Komponente muss darauf vorbereitet sein, dass das Ergebnis unmittelbar nach dem API-Aufruf NVM_REQ_PENDING ist und der Abschluss asynchron über die konfigurierte Block-Ende-Benachrichtigung (JobEndNotification) gemeldet wird. Vor dem Abruf des Fehlerstatus via NvM_GetErrorStatus muss der Abschluss des Auftrags abgewartet werden, sofern nicht gepollt wird.

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

R2.1.20 → R3.0.7 normative Änderung Nachfolger: FIG-dd1792d93bd0b632
  • 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.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sd Asychronous Call w ith Callback | SW Component | (from Interaction Views) | 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 | Scheduler (OS | task or cyclic | call) | Nv M::Nv M | loop Job processing | [repeat until writing of block is completed] | Std_ReturnType:= NvM_WriteBlock(BlockId,NvM_SrcPtr) | NvM_WriteBlock | NvM_MainFunction | NvM_MainFunction | NvM_MainFunction | JobEndNotification | JobEndNotification | NvM_MainFunction | NvM_RequestResultType:= NvM_GetErrorStatus(BlockId, RequestResultPtr) | NvM_GetErrorStatus

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R2.1.20 AUTOSAR_SWS_NVRAMManager S. 72 17 Figure 17: UML sequence diagram for asynchronous call with callback