DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-97370110228c5806 886 × 566 px 1 Release(s)

Figure 13: UML sequence diagram NvM_SetBlockProtection

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

  • Klassifikation: UML 2.0 Sequenzdiagramm (sd NvM_SetBlockProtection), formale Interaktionssicht (Interaction View).
  • Architektur-Ebene: AUTOSAR Classic Platform, Basic Software (BSW), Schicht der Speicherdienste (Memory Services).
  • Funktionaler Kontext: Modellierung des synchronen Kontrollflusses zur Laufzeitkonfiguration des Schreibschutzes (Write Protection) eines dedizierten NVRAM-Blocks durch eine übergeordnete Software-Komponente.

2. Komponenten, Entitäten & Schnittstellen

  • Lebenslinien / Akteure:
    • NvM User: Aufrufende Benutzerentität (SW-C via RTE oder BSW-Dienst), Paketpräfix entfernt.
    • «module» NvM: BSW-Modul NVRAM Manager mit Stereotyp «module» und Dekompositionssymbol oo, Paketpräfix entfernt.
  • Schnittstellensignatur:
    • Aufruf: NvM_SetBlockProtection(NvM_BlockIdType, boolean) – Angabe der formalen Datentypen anstelle der Parameterbezeichner.
      • NvM_BlockIdType: Eindeutige numerische Kennung des logischen NVRAM-Blocks.
      • boolean: Boolesches Flag zur Aktivierung oder Deaktivierung des Schreibschutzes.
    • Rücksprung: Synchrone Quittierung mit expliziten Klammern (NvM_SetBlockProtection()), Rückgabewert Std_ReturnType.
  • Zusätzliche Diagrammelemente:
    • Notizkasten zur Spezifikationsverfolgung (Status: Proposed by TO as per NvM SWS 1.44, Description:, Comments:).

3. Dynamisches Verhalten & Sequenzablauf

  1. Aufruf: Die SW Component führt den synchronen Funktionsaufruf NvM_SetBlockProtection(BlockID, ProtectionEnabled) aus und blockiert ihren lokalen Kontrollfluss für die Dauer der Bearbeitung.
  2. Interne Zustandsänderung:
    • Die Ausführung erfolgt unmittelbar und blockierend im Task-Kontext des Aufrufers.
    • Der NvM reiht keinen Auftrag in die asynchrone Job-Queue ein und triggert keine Operationen in der darunterliegenden Memory Hardware Abstraction (MemIf, Fls, Eep).
    • Es wird ausschließlich das administrative Attributbit für den Schreibschutz im RAM-Verwaltungsblock (NvM_AdminBlockType) des adressierten Blocks gesetzt oder zurückgesetzt.
  3. Abschluss & Rücksprung: Das Modul quittiert den Aufruf mit Rückgabe des Statuscodes (E_OK bzw. Fehlercode) und gibt den Thread an die SW Component zurück.
  4. Fehlerbedingungen & DET-Checks:
    • Abweisung mit E_NOT_OK und DET-Meldung NVM_E_NOT_INITIALIZED, falls der NvM noch nicht initialisiert ist.
    • NVM_E_PARAM_BLOCK_ID, falls BlockID außerhalb des konfigurierten Wertebereichs liegt.
    • NVM_E_BLOCK_PENDING, falls für den adressierten Block zeitgleich ein asynchroner Lese-, Schreib- oder Löschauftrag aktiv ist.
    • Verhinderung der Deaktivierung (ProtectionEnabled = FALSE), wenn der Block per Konfiguration mit NvMWriteBlockOnce = TRUE definiert wurde und bereits mindestens einmal persistent geschrieben ist.

4. Normative Relevanz & Entwickler-Hinweise

  • API-Eigenschaften: Reentrant für unterschiedliche BlockIDs, non-reentrant für dieselbe BlockID. Da rein synchron, entfällt das Polling über NvM_GetErrorStatus() sowie Callback-Mechanismen (JobEnd-/JobError-Notifications).
  • Keine Kopplung an NvM_MainFunction: Der Schutzstatus ist unmittelbar nach Rückkehr der Funktion gültig und nicht an den Schedule-Zyklus der zyklischen BSW-Main-Function gebunden.
  • Effekt auf Folgeoperationen:
    • Ist der Schutz aktiv (TRUE), schlagen nachfolgende Schreibaufträge (NvM_WriteBlock, NvM_WritePRAMBlock) bereits in der Validierungsphase mit E_NOT_OK fehl.
    • Beim Herunterfahren des Steuergeräts (NvM_WriteAll) werden schreibgeschützte Blöcke im NV-Speicher übersprungen.
  • RTE-/SWC-Integration: Für Applikations-SWCs wird dieser Dienst über ein Client-Server-Interface (NvM_Admin bzw. NvM_Service mit Operation SetBlockProtection) angebunden. Der aufrufende RTE-Port muss synchron (Rte_Call) konfiguriert sein.

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

R3.1.5 → R3.2.3 redaktionell Vorgänger: FIG-9e1d2d51953aaf72
  • Linke Lebenslinie: Entfernung des Paketpräfixes (Generic Elements::NvM User zu NvM User).
  • Rechte Lebenslinie: Entfernung des Paketpräfixes (NvM::NvM zu NvM).
  • Aufruf-Nachricht: Ersetzung der Parameterbezeichner durch formale AUTOSAR-Datentypen (NvM_SetBlockProtection(BlockId, ProtectionEnabled) zu NvM_SetBlockProtection(NvM_BlockIdType, boolean)).
  • Rücksprung-Nachricht: Ergänzung expliziter Klammern (NvM_SetBlockProtection zu NvM_SetBlockProtection()).
R3.2.3 → R4.0.3 redaktionell Nachfolger: FIG-40ab69d011bb2c8d
  • Diagrammrahmen: UML-Rahmen und Titelkopf (sd NvM_SetBlockProtection) entfernt.
  • Diagrammelemente: Notizkasten mit Metadaten (Status: Proposed by TO as per NvM SWS 1.44...) entfernt.
  • Aufruf-Nachricht: Voranstellen des Rückgabetyps Std_ReturnType in der Signaturanzeige (NvM_SetBlockProtection(NvM_BlockIdType, boolean) zu NvM_SetBlockProtection(Std_ReturnType, NvM_BlockIdType, boolean)).

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sd NvM_SetBlockProtection | «module» | NvM | NvM User | Status: Proposed by TO as per NvM SWS 1.44 | Description: | Comments: | NvM_SetBlockProtection(NvM_BlockIdType, boolean) | NvM_SetBlockProtection()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R3.2.3 AUTOSAR_SWS_NVRAMManager S. 96 13 Figure 13: UML sequence diagram NvM_SetBlockProtection