AUTOSAR_CP_EXP_NVDataHandling
FIG-3c46bc83ef088c30
932 × 304 px
1 Release(s)
Figure 4.2: Overview of Implicit synchronization
SHA-256 Inhalts-Fingerabdruck:
3c46bc83ef088c30774ec012ad5d6b0485667e553ef523be8bb924298c312291
✦
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: Konzeptuelles Datenfluss- und Architektur-Blockschaltbild (Prinzipdarstellung).
- Funktionale Einordnung: AUTOSAR Classic Platform (CP), Speichersubsystem (BSW Memory Stack / NvM).
- Technischer Zweck: Gegenüberstellung von Anwendungs- und Treiber-/BSW-Speicherdomänen zur Verdeutlichung der impliziten Synchronisation (
NvMBlockUseSyncMechanism == FALSE). Dargestellt ist der direkte, ungepufferte Datenaustausch zwischen dem permanenten RAM-Puffer der Applikation (APPLICATION RAM) und dem nicht-flüchtigen Speicherblock (MEMORY STACK), im Gegensatz zur spiegelbasierten expliziten Synchronisation.
2. Komponenten, Entitäten & Schnittstellen
- Entitäten & Speicherdomänen:
- APPLICATION RAM (Domain): Adressraum der Applikationsebene (SW-C / RTE).
RAM(Datenstruktur): Permanenter Anwendungs-RAM-Block (Permanent RAM Block). Dieser ist im NvM-Modul über den KonfigurationsparameterNvMRamBlockDataAddressdirekt referenziert bzw. wird über RTE-generierte Puffer der SW-C bereitgestellt.
- MEMORY STACK (Domain): AUTOSAR BSW-Speicherstapel, bestehend aus NVRAM Manager (
NvM), Memory Abstraction Interface (MemIf), Memory Extraction/EEPROM/Flash Drivers (Fee/Ea,Fls/Eep).NV Block(Logische Entität): Abstrahierter, persistenter Datensatz im Flash/EEPROM, verwaltet durch die Block-Deskriptor-Tabelle des NvM.
- APPLICATION RAM (Domain): Adressraum der Applikationsebene (SW-C / RTE).
- Schnittstellen & Datenpfade (Gerichtete Relationen):
Write(RAM → NV Block): Direkter Lesezugriff des Memory Stacks auf das Application-RAM zur asynchronen Programmierung des nicht-flüchtigen Speichers.Read(NV Block → RAM): Direktes Schreiben der aus dem NV-Speicher gelesenen Nutzdaten durch den Memory Stack in den Application-RAM-Puffer.- Architekturelles Merkmal: Vollständiger Verzicht auf einen NvM-internen Spiegelpuffer (
NvM Mirror) sowie Entfall der Synchronisations-Callbacks (NvM_ReadRamBlockFromNvM,NvM_WriteRamBlockToNvM).
3. Dynamisches Verhalten & Sequenzablauf
- Trigger & Auftragsinitiierung:
- Read-Pfad: Ausgelöst durch
NvM_ReadBlock()(Single Block) oderNvM_ReadAll()während des ECU-Startups (EcuM/BswM). Der NvM liest überMemIfdie Rohdaten, validiert optionale CRCs/Header und schreibt die Nutzdaten direkt nachAPPLICATION RAM. - Write-Pfad: Ausgelöst durch
NvM_WriteBlock()(Single Block) oderNvM_WriteAll()während des Shutdowns. Der NvM greift während der Hintergrundprogrammierung zyklisch (NvM_MainFunction()) direkt aufAPPLICATION RAMzu, berechnet die Prüfsumme und übergibt die Datenblöcke sequenziell an die unteren Treiber.
- Read-Pfad: Ausgelöst durch
- Asynchroner Ablauf & Zustandsüberwachung:
- Nach Übergabe des Auftrags wechselt der Blockstatus auf
NVM_REQ_PENDING. - Die Terminierung erfolgt asynchron; Benachrichtigung über
NvM_SingleBlockCallbackFunctionoder Polling mittelsNvM_GetErrorStatus().
- Nach Übergabe des Auftrags wechselt der Blockstatus auf
- Abbruch- und Fehlerbedingungen:
- Tritt ein Hardware-Fehler (z. B. Write/Read Verification Failure, CRC-Fehler) auf, bricht der Stack ab, meldet
NVM_REQ_NOT_OKan den Aufrufer und setzt ggf. ein Dem-Event (NVM_E_REQ_FAILED).
- Tritt ein Hardware-Fehler (z. B. Write/Read Verification Failure, CRC-Fehler) auf, bricht der Stack ab, meldet
4. Normative Relevanz & Entwickler-Hinweise
- NvM-Konfiguration:
- Erfordert
NvMBlockUseSyncMechanism = FALSEim betreffendenNvMBlockDescriptor. NvMRamBlockDataAddressmuss auf ein gültiges, dauerhaft allokiertes RAM-Segment zeigen (oderNULL_PTR, falls das RAM über temporäre API-Zeiger übergeben wird).
- Erfordert
- Datenkonsistenz & Concurrency-Gefahr (Tearing):
- Kritische Restriktion: Während ein Write-Auftrag aktiv ist (
NVM_REQ_PENDING), darf die Applikation nicht schreibend auf denAPPLICATION RAM-Block zugreifen. - Da Flash-Programmierzyklen viele Millisekunden dauern und preemption-fähig über
NvM_MainFunction()ablaufen, führt eine Modifikation durch eine höherpriore SW-C-Task unweigerlich zu inkonsistenten Daten im Flash (Data Tearing) oder zu einem CRC-Fehlabgleich beim späteren Auslesen.
- Kritische Restriktion: Während ein Write-Auftrag aktiv ist (
- Architektur-Entscheidung (Implicit vs. Explicit):
- Implizit (dieses Diagramm): Minimaler RAM-Footprint (kein doppelter Puffer), keine Copy-Callbacks erforderlich. Geeignet für statische Kalibrierdaten, DTC-Records oder Blöcke, die nur bei ECU-Startup/Shutdown transferiert werden.
- Explizit: Zwingend erforderlich, wenn SW-Cs den RAM-Puffer kontinuierlich nutzen und keine Schreibsperre während des asynchronen NvM-Schreibvorgangs tolerieren können.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.