AUTOSAR_SWS_RTE
FIG-2e84a7a939129b33
620 × 320 px
1 Release(s)
Figure 4.27: ParameterElementGroup in double pointered method context
SHA-256 Inhalts-Fingerabdruck:
2e84a7a939129b331fc2328399660e11bbd47ec1d93374f497c504dd5dadca91
✦
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: Speicher- und Zeigerindirektions-Layout (Memory Layout / Pointer Indirection Architecture).
- Technischer Zweck & Einordnung: Spezifikation der softwaregestützten Datenemulation für Kalibrierparameter (Data Emulation with Software Support – Double Pointered Method) gemäß
AUTOSAR_SWS_RTE. Das Verfahren ermöglicht die Laufzeitkalibrierung (z. B. via XCP/ASAM MCD-1b) von im Flash/ROM abgelegten Parametern durch eine zweistufige Zeigerindirektion. Dadurch können modifizierte Parametergruppen partiell in den RAM gespiegelt werden, ohne die gesamte Flash-Page oder teure Hardware-Emulationseinheiten (wie Overlay-RAM / Emulation-Devices) vorzuhalten.
2. Komponenten, Entitäten & Schnittstellen
Base reference:- Standardisierter Basiszeiger (
void**), global und mit festem Label gemäß[rte_sws_3948]exportiert. - Zeigt initial auf die Flash/ROM-Version der
Calibration reference tableund kann zur Laufzeit durch BSW-Module (z. B. CDD oder XCP-Handler) auf eine modifizierte RAM-Kopie umgebogen werden.
- Standardisierter Basiszeiger (
Calibration reference table:- Vom RTE-Generator erzeugtes Zeiger-Array (
void* []) gemäß[rte_sws_3914]. - Jeder Indexeintrag adressiert die Startadresse einer spezifischen
ParameterElementGroup.
- Vom RTE-Generator erzeugtes Zeiger-Array (
ParameterElementGroup:- Zusammenhängender, typisierter Speicherbereich (C-Struktur/Array), der eine fachlich oder taktisch zusammengehörende Menge von Kalibrierwerten kapselt.
- Bildet die minimale Granularitäts- und Umschalteinheit für die RAM-Umleitung.
ParameterElement:- Diskreter Kalibrierwert (Skalar, Kennlinie/Curve, Kennfeld/Map) innerhalb einer Gruppe, auf den Anwendungs-SWCs über RTE-APIs (z. B.
Rte_CData_*) zugreifen.
- Diskreter Kalibrierwert (Skalar, Kennlinie/Curve, Kennfeld/Map) innerhalb einer Gruppe, auf den Anwendungs-SWCs über RTE-APIs (z. B.
- Kardinalitäten & Beziehungen:
Base reference→Calibration reference table: 1 : 1 (Referenz auf aktive Tabelle).Calibration reference table→ParameterElementGroup: 1 : n (Tabellenzeilen adressieren einzelne Gruppen).ParameterElementGroup→ParameterElement: 1 : m (Elemente liegen als Offsets innerhalb der Gruppe).
3. Dynamisches Verhalten & Sequenzablauf
Der Zugriff und die Umschaltung (Page Switching / Online Calibration) vollziehen sich in vier sequenziellen Phasen:
- Replikation der Zeigertabelle: Die initiale
Calibration reference tablewird aus dem ROM/Flash vollständig in einen zugewiesenen RAM-Puffer kopiert. - Allokation & Modifikation der Nutzdaten: Ein RAM-Bereich wird mit den neuen Werten für die zu modifizierende
ParameterElementGroupbeschrieben. - Zeigerumlenkung im RAM: In der RAM-Kopie der Referenztabelle wird der Pointer-Eintrag der betroffenen Gruppe auf die Adresse der neuen RAM-
ParameterElementGroupumgebogen. - **Atomare Umschaltung (Commit):** Der
Base reference-Zeiger wird auf die Basisadresse der RAM-Zeigertabelle umgesetzt. - RTE-Lesezugriff durch SWC: $$\text{Zieladresse} = \left(\left(\text{void}^{**}\right)\text{BaseReference}\right)[\text{GroupIndex}] + \text{ElementOffset}$$ Ab diesem Taktzyklus liest die SWC ohne Unterbrechung oder Dateninkonsistenz den neuen Kalibrierwert.
4. Normative Relevanz & Entwickler-Hinweise
- RTE-Generierung & Footprint:
[rte_sws_3914]: Der RTE-Generator muss bei aktivierter Double-Pointer-Methode die Referenztabelle im ROM/Flash alsconst void*[]erzeugen.[rte_sws_3948]: Der Symbolname des Basiszeigers unterliegt einer strikten Namenskonvention, damit Kalibriertreiber (CDD/XCP) plattformunabhängig darauf zugreifen können.
- Laufzeit- & Cache-Performance:
- Jeder Zugriff auf Kalibrierparameter erzwingt zwei sequentielle Speicher-Dereferenzierungen vor dem eigentlichen Nutzdaten-Lesezugriff. Dies führt zu zusätzlichem Befehls-Overhead und potenziellen CPU-Pipeline-/Data-Cache-Misses in harten Echtzeit-Tasks.
- Granularität & RAM-Budgetierung:
- Da nicht einzelne
ParameterElemente, sondern stets vollständigeParameterElementGroups in den RAM ausgelagert werden, entscheidet die SWC-Clusterung über den RAM-Verbrauch während der Kalibrierphase. Feingranulare Gruppen minimieren den RAM-Pufferbedarf, vergrößern jedoch dieCalibration reference table.
- Da nicht einzelne
- Nebenläufigkeit & Core-Konsistenz:
- Das Setzen der
Base referencemuss atomar erfolgen. Auf 32-Bit- bzw. 64-Bit-Architekturen ist sicherzustellen, dass Pointer-Schreiboperationen bus-atomar ausgeführt werden, um inkonsistente Zwischenzustände bei nebenläufigen SWC-Lesezugriffen (insbesondere über Core-Grenzen hinweg) auszuschließen.
- Das Setzen der
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.