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_NVDataHandlingundAUTOSAR_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 überNvM_MirrorBufferbzw. 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 überMemIf,Fee/EaundFls/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)
- Write:
- Pfad (2) [RAM Mirror ↔ NV Block]: Asynchroner Hardware-I/O-Transfer über das AUTOSAR Memory Abstraction Interface (
MemIf_Read,MemIf_Write).
- Pfad (1) [RAM Block ↔ RAM Mirror]: Schnelle, synchrone Datenkopie im Kontext der
3. Dynamisches Verhalten & Sequenzablauf
Schreibpfad (NvM_WriteBlock / NvM_WritePRAMBlock)
- Trigger: Applikation fordert Schreibauftrag asynchron an. Der NvM reiht den Auftrag in seine Queue ein.
- Transfer (1) – Spiegelung (Synchron): Erreicht der Job die Bearbeitung, ruft die
NvM_MainFunctionden CallbackNvMWriteRamBlockToNvCallbackauf. Die Nutzdaten werden atomar aus demRAM Blockin denRAM Mirrorkopiert. Sobald der Callback terminiert, kann die Applikation ihrenRAM Blocksofort wieder ohne Integritätsverlust beschreiben. - 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 persistentenNV Block. - Terminierung: Benachrichtigung der Applikation via Callback (
NvM_SingleBlockCallbackFunction) oder Polling überNvM_GetErrorStatus.
Lesepfad (NvM_ReadBlock / NvM_ReadPRAMBlock / NvM_ReadAll)
- Trigger: Lesebefehl wird in die NvM-Warteschlange eingelastet.
- Transfer (2) – NV-Transfer (Asynchron): Der NvM liest die Daten aus dem physikalischen
NV Blockin denRAM Mirror. Integritätsprüfungen (CRC, Blockheader) finden hier im NvM-Kontext statt. - Transfer (1) – Spiegelung (Synchron): Bei erfolgreicher Validierung triggert der NvM
NvMReadRamBlockFromNvCallback, welcher die gültigen Daten atomar vomRAM Mirrorin denRAM Blockder Applikation überträgt.
4. Normative Relevanz & Entwickler-Hinweise
- Konfigurationsvertrag (ARXML / NvM):
- Aktivierung pro Block über den Konfigurationsparameter
NvMBlockUseSyncMechanism = TRUE. - Konfiguration der Funktionszeiger für
NvMReadRamBlockFromNvCallbackundNvMWriteRamBlockToNvCallback(bzw. entsprechende Port-Defined Arguments im RTE/SW-C-Descriptor).
- Aktivierung pro Block über den Konfigurationsparameter
- Vorteil gegenüber impliziter Synchronisation (
NvMBlockUseSyncMechanism = FALSE):- Keine dauerhafte Sperrung des
RAM Blockwährend der gesamten Flash-Programmierzeit (teilweise mehrere 100 ms). Die Blockade beschränkt sich rein auf die Dauer des Callback-Kopiervorgangs (Mikrosekundenbereich).
- Keine dauerhafte Sperrung des
- Konkurrierender Zugriff & Task-Synchronisation:
- Der Entwickler muss sicherstellen, dass während der Ausführung des Callbacks keine Interrupts oder höherpriore Tasks den
RAM Blockmodifizieren (Absicherung über OS-Interrupt-Sperre oder Resource-Lock im Callback erforderlich).
- Der Entwickler muss sicherstellen, dass während der Ausführung des Callbacks keine Interrupts oder höherpriore Tasks den
- 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).
- Erfordert zusätzlichen RAM-Bedarf im Basistreiber-Speicherabbild für den
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.