DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_NVRAMManager FIG-1bd914f2b26208b2 656 × 392 px 1 Release(s)

Figure 13: UML sequence diagram NvM_SetBlockProtection

SHA-256 Inhalts-Fingerabdruck: 1bd914f2b26208b25c13362e8659453d31a19a24b131a0db86e9c1d92dfa8c62
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07

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:
    • SW Component (from Interaction Views): Aufrufende Entität, z. B. eine Application Software Component (SW-C via RTE) oder ein BSW-Dienst/Manager.
    • NvM::NvM: BSW-Modul NVRAM Manager (gekennzeichnet mit Dekompositionssymbol oo für interne Subsystemstrukturen).
  • Schnittstellensignatur:
    • Aufruf: NvM_SetBlockProtection(BlockID, ProtectionEnabled)
      • BlockID (NvM_BlockIdType): Eindeutige numerische Kennung des logischen NVRAM-Blocks.
      • ProtectionEnabled (boolean): Boolesches Flag (TRUE = Schreibschutz aktivieren, FALSE = Schreibschutz deaktivieren).
    • Rücksprung: Synchrone Rückmeldung (NvM_SetBlockProtection), liefert typkonform Std_ReturnType (E_OK / E_NOT_OK).

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)

R2.1.20 → R3.0.7 redaktionell Nachfolger: FIG-9e1d2d51953aaf72
  • Linke Lebenslinie: Umbenennung von SW Component (mit Paketangabe (from Interaction Views)) zu Generic Elements::NvM User.
  • Rechte Lebenslinie: Ergänzung des Stereotyps «module» über NvM::NvM.
  • Aufruf-Nachricht: Schreibweise des Parameters geändert von BlockID zu BlockId (NvM_SetBlockProtection(BlockID, ProtectionEnabled) zu NvM_SetBlockProtection(BlockId, ProtectionEnabled)).
  • Diagrammelemente: Notizkasten mit Spezifikationsmetadaten (Status: Proposed by TO as per NvM SWS 1.44, Description:, Comments:) im linken unteren Bereich hinzugefügt.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sd NvM_SetBlockProtection | SW Component | (from Interaction Views) | NvM::NvM | NvM_SetBlockProtection(BlockID, ProtectionEnabled) | NvM_SetBlockProtection

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R2.1.20 AUTOSAR_SWS_NVRAMManager S. 69 13 Figure 13: UML sequence diagram NvM_SetBlockProtection