DEENESPTFRRUARHIKOZHNL
AUTOSAR_CP_EXP_NVDataHandling FIG-4c709363d9fd0791 932 × 597 px 3 Release(s)

Figure 4.3: Overview of Explicit synchronization

SHA-256 Inhalts-Fingerabdruck: 4c709363d9fd07913686cdd81ee68127cbd9de9192ba8562e5a3dc3c333ce90b
✦ 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: Konzeptuelles Schichten- und Datenflussmodell (Blockschaltbild) des Speichersystems in Classic AUTOSAR.
  • Technischer Zweck: Visualisierung des Mechanismus der expliziten Synchronisation (Explicit Synchronization) im AUTOSAR NVRAM Manager (NvM) gemäß AUTOSAR_CP_EXP_NVDataHandling und AUTOSAR_CP_SWS_NVRAMManager.
  • Funktionale Einordnung: Entkopplung des anwendungsseitigen Arbeitsspeichers von den zeitintensiven, asynchronen I/O-Operationen des Flash-/EEPROM-Speichertreibers zur Vermeidung von Race Conditions, Dateninkonsistenzen und langen Task-Blockierzeiten.

2. Komponenten, Entitäten & Schnittstellen

  • APPLICATION RAM:
    • RAM Block: Anwendungseigener Arbeitsspeicher-Puffer (Software-Component/SW-C oder Basistreiber). Wird im Normalbetrieb von der Applikation ohne NvM-Locking genutzt.
  • MEMORY STACK (NvM-Subsystem):
    • RAM Mirror: Modulinterner Zwischenpuffer des NvM (konfiguriert über NvM_MirrorBuffer bzw. blockindividuelle Mirror-Allokation). Dient als statische Pufferstufe für persistente Operationen.
    • NV Block: Repräsentation des Datensatzes im physikalischen nichtflüchtigen Speicher (EEPROM/Flash), abstrahiert über MemIf, Fee/Ea und Fls/Eep.
  • Schnittstellen & Pfade:
    • Pfad (1) [RAM Block ↔ RAM Mirror]: Schnelle, synchrone Datenkopie im Kontext der NvM_MainFunction über dedizierte Callback-APIs:
      • Write: NvMWriteRamBlockToNvCallback (<Module>_WriteRamBlockToNvm)
      • Read: NvMReadRamBlockFromNvCallback (<Module>_ReadRamBlockFromNvm)
    • Pfad (2) [RAM Mirror ↔ NV Block]: Asynchroner Hardware-I/O-Transfer über das AUTOSAR Memory Abstraction Interface (MemIf_Read, MemIf_Write).

3. Dynamisches Verhalten & Sequenzablauf

Schreibpfad (NvM_WriteBlock / NvM_WritePRAMBlock)
  1. Trigger: Applikation fordert Schreibauftrag asynchron an. Der NvM reiht den Auftrag in seine Queue ein.
  2. Transfer (1) – Spiegelung (Synchron): Erreicht der Job die Bearbeitung, ruft die NvM_MainFunction den Callback NvMWriteRamBlockToNvCallback auf. Die Nutzdaten werden atomar aus dem RAM Block in den RAM Mirror kopiert. Sobald der Callback terminiert, kann die Applikation ihren RAM Block sofort wieder ohne Integritätsverlust beschreiben.
  3. Transfer (2) – NV-Transfer (Asynchron): Der NvM überträgt die Daten aus dem RAM Mirror über die unteren Treiberschichten (MemIf → Fee/Ea → Flash/EEPROM) in den persistenten NV Block.
  4. Terminierung: Benachrichtigung der Applikation via Callback (NvM_SingleBlockCallbackFunction) oder Polling über NvM_GetErrorStatus.
Lesepfad (NvM_ReadBlock / NvM_ReadPRAMBlock / NvM_ReadAll)
  1. Trigger: Lesebefehl wird in die NvM-Warteschlange eingelastet.
  2. Transfer (2) – NV-Transfer (Asynchron): Der NvM liest die Daten aus dem physikalischen NV Block in den RAM Mirror. Integritätsprüfungen (CRC, Blockheader) finden hier im NvM-Kontext statt.
  3. Transfer (1) – Spiegelung (Synchron): Bei erfolgreicher Validierung triggert der NvM NvMReadRamBlockFromNvCallback, welcher die gültigen Daten atomar vom RAM Mirror in den RAM Block der Applikation überträgt.

4. Normative Relevanz & Entwickler-Hinweise

  • Konfigurationsvertrag (ARXML / NvM):
    • Aktivierung pro Block über den Konfigurationsparameter NvMBlockUseSyncMechanism = TRUE.
    • Konfiguration der Funktionszeiger für NvMReadRamBlockFromNvCallback und NvMWriteRamBlockToNvCallback (bzw. entsprechende Port-Defined Arguments im RTE/SW-C-Descriptor).
  • Vorteil gegenüber impliziter Synchronisation (NvMBlockUseSyncMechanism = FALSE):
    • Keine dauerhafte Sperrung des RAM Block während der gesamten Flash-Programmierzeit (teilweise mehrere 100 ms). Die Blockade beschränkt sich rein auf die Dauer des Callback-Kopiervorgangs (Mikrosekundenbereich).
  • Konkurrierender Zugriff & Task-Synchronisation:
    • Der Entwickler muss sicherstellen, dass während der Ausführung des Callbacks keine Interrupts oder höherpriore Tasks den RAM Block modifizieren (Absicherung über OS-Interrupt-Sperre oder Resource-Lock im Callback erforderlich).
  • Memory-Footprint:
    • Erfordert zusätzlichen RAM-Bedarf im Basistreiber-Speicherabbild für den RAM Mirror (Größe entspricht mindestens dem größten synchronisierten NV-Block oder aggregiert allen konfigurierten Blöcken).

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Vorkommen in AUTOSAR-Releases (3)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R23-11 AUTOSAR_CP_EXP_NVDataHandling S. 13 4.3 Figure 4.3: Overview of Explicit synchronization
R24-11 AUTOSAR_CP_EXP_NVDataHandling S. 13 4.3 Figure 4.3: Overview of Explicit synchronization
R25-11 AUTOSAR_CP_EXP_NVDataHandling S. 14 4.3 Figure 4.3: Overview of Explicit synchronization