AUTOSAR_SWS_EEPROMAbstraction
FIG-145c8b4514ffef45
935 × 755 px
1 Release(s)
Figure 2: Virtual vs. physical memory layout
SHA-256 Inhalts-Fingerabdruck:
145c8b4514ffef4545116ef631da70beecbb22e458daeedc84b2647bbc43c9ec
✦
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: Speicherabbildungs- und Adress-Mapping-Diagramm (Memory Layout).
- Technischer Zweck & Einordnung: Visualisierung der Adressraumtransformation im Modul EEPROM Abstraction (
Ea, AUTOSAR Classic BSW, Memory Hardware Abstraction Layer). - Funktionale Einordnung:
- Vermittelt zwischen der standardisierten, virtuellen Blockadressierung der oberen Schichten (NVRAM Manager /
NvMvia Memory Abstraction Interface /MemIf) und dem linearen, seitenorientierten Adressraum des zugrundeliegenden EEPROM Drivers (Eep). - Entkoppelt den 32-Bit-Zugriff (
16-Bit Block Number+16-Bit Block Offset) von der physischen Speicherorganisation und bildet variable Blockgrößen auf feste Page-Einheiten (EA_VIRTUAL_PAGE_SIZE) ab.
- Vermittelt zwischen der standardisierten, virtuellen Blockadressierung der oberen Schichten (NVRAM Manager /
2. Komponenten, Entitäten & Schnittstellen
- Virtueller Adressraum (Upper Layer Sicht / NvM):
- 16-Bit Block Number: Logische Adresskomponente zur Selektion des Datenblocks (theoretischer Wertebereich: 1 … 65535).
- 16-Bit Block Offset: Byte-Offset innerhalb eines logischen Blocks; limitiert die maximale Nutzdatenlänge eines Blocks auf 64\,KiB (2^16\,Bytes).
- Virtuelle Blöcke (Sparse Mapping): Jeder logische Block spannt im virtuellen Adressraum bis zu 64\,KiB auf; ungenutzter Raum bleibt logisch allokiert, wird jedoch nicht physisch belegt.
- Physischer Adressraum (Lower Layer Sicht / Eep):
- Page-Alignment (
EA_VIRTUAL_PAGE_SIZE): Konfigurierte Paginierungsgröße (im Diagramm: 8\,Bytes). - Block-Allokation & Page-Bedarf:
- Block #1: 32\,Bytes → 4\,Pages (4 × 8\,Bytes = 32\,Bytes), kein Verschnitt (0 Bytes internal residue).
- Block #5: 100\,Bytes → 13\,Pages (13 × 8\,Bytes = 104\,Bytes), Verschnitt: 4\,Bytes (internal residue).
- Block #17: 38\,Bytes → 5\,Pages (5 × 8\,Bytes = 40\,Bytes), Verschnitt: 2\,Bytes (internal residue).
- Page-Alignment (
- Mathematische & relationale Bindungen:
- Page-Berechnung: $\text{Pages}(B) = \lceil \text{BlockSize}(B) / \text{EA\_VIRTUAL\_PAGE\_SIZE} \rceil$
- Blocknummern-Fortschaltung: $BlockID_n+1 = BlockID_n + Pages(B_n)$ Daraus resultiert die Sperrung nachfolgender Blocknummern (z. B. blockiert Block #1 die IDs 2, 3, 4; Block #5 blockiert IDs 6 … 16).
- Internal Residue (Verschnitt): $\text{Residue}(B) = (\text{Pages}(B) \times \text{EA\_VIRTUAL\_PAGE\_SIZE}) - \text{BlockSize}(B)$
3. Dynamisches Verhalten & Sequenzablauf
Das Diagramm definiert das statische Allokationsmodell, welches die Laufzeit-Adressberechnung deterministisch steuert:
- API-Aufruf:
NvMruft überMemIfdie SchnittstelleEa_Read,Ea_WriteoderEa_EraseImmediateBlockmit ParameternBlockNumber,BlockOffsetundLengthauf. - Adressauflösung: Das Modul
Eaberechnet die physische Basisadresse im EEPROM direkt ohne dynamische Allocation-Tables oder Wear-Leveling (im Gegensatz zuFee): $$\text{Eep\_Address} = \text{Ea\_BaseAddress} + ((\text{BlockNumber} - 1) \times \text{EA\_VIRTUAL\_PAGE\_SIZE}) + \text{BlockOffset}$$ - Treiber-Delegation:
Easetzt die Lese-/Schreibanforderung in synchrone/asynchrone Aufrufe an den Treiber ab (Eep_Read,Eep_Write). - Fehlerbehandlung:
- Ist (BlockOffset + Length) > BlockSize, meldet
Eaden FehlerEA_E_INVALID_BLOCK_LENan das Default Error Tracer (Det). - Ist die
BlockNumberungültig oder nicht konfiguriert, erfolgtEA_E_INVALID_BLOCK_NO.
- Ist (BlockOffset + Length) > BlockSize, meldet
4. Normative Relevanz & Entwickler-Hinweise
- Konfigurationsverpflichtung (
Ea.bmd/ BSW-Tooling):EaVirtualPageSize: Muss zwingend ein ganzzahliges Vielfaches der hardwarebedingtenEepWriteUnitSize/Eep_PageSizedes EEPROMs sein.- Nicht-kontinuierliche Blocknummern: Konfiguratoren/Integratoren dürfen
EaBlockNumbernicht fortlaufend inkrementieren (1, 2, 3 …). Jede Blocknummer reserviert N virtuelle Page-Indizes. Eine fälschliche Vergabe von Block #2 bei einem 32-Byte-Block #1 führt zu Adressraum-Kollisionen und Datenkorruption.
- Speicherökonomie & Padding:
- Jedes Datenobjekt im NvM sollte idealerweise auf ein Vielfaches von
EA_VIRTUAL_PAGE_SIZEaligned werden, um ungenutzten Speicherverschnitt (internal residue) zu eliminieren. - Da die ungenutzten Bytes einer End-Page für Folgeblöcke unzugänglich sind, verringern unpassende Blockgrößen die Netto-Kapazität des physischen Speichers signifikant.
- Jedes Datenobjekt im NvM sollte idealerweise auf ein Vielfaches von
- Architekturelle Grenzen:
- Adressbereich pro Block fest auf maximal 65.535\,Bytes begrenzt.
- Keine implizite Redundanzverwaltung oder Blockverschiebung; defekte Speicherzellen führen ohne übergeordnete NvM-Redundanzmechanismen (Redundant Blocks) zum Datenverlust.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.