AUTOSAR_AP_SWS_Diagnostics
FIG-663987a8ae5c47dc
958 × 1283 px
6 Release(s)
Figure 7.8: Combined displacement criteria processing
SHA-256 Inhalts-Fingerabdruck:
663987a8ae5c47dc50ee1d28be67aeef325b6ad72763d0b01256c08b09d27018
✦
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
- Diagrammtyp: UML 2.x Aktivitätsdiagramm (Activity Diagram) mit Entscheidungsknoten (Decision Nodes), Kontrollfluss-Verzweigung (Fork/Branch) und Aktivitätsendknoten (Activity Final Nodes).
- Architektur-Kontext:
- Komponente: Diagnostic Management (DM) der AUTOSAR Adaptive Platform (spezifiziert in
AUTOSAR_AP_SWS_Diagnostics, äquivalent zur Verdrängungslogik im Classic PlatformDem). - Funktionaler Zweck: Normative Definition des deterministischen Verdrängungsalgorithmus (Event Memory Entry Displacement). Er greift, wenn der zugeordnete Ereignisspeicher vollständig allokiert ist (
Event memory is already full) und ein neu qualifiziertes Diagnoseereignis (reported event) persistiert werden muss. - Ziel: Geordneter Konfliktentscheid zwischen Datenverlust eines bestehenden Eintrags (Displacement / Aging-Preemption) und Verwerfen des neuen Ereignisses (Discard).
- Komponente: Diagnostic Management (DM) der AUTOSAR Adaptive Platform (spezifiziert in
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Datenstrukturen:
- Event Memory (Ereignisspeicher): Konfigurierter Speicherbereich mit fixer Kapazität für Fehlerspeichereinträge (DTCs, Freeze Frames, Extended Data Records).
- Reported Event: Eintreffendes, speicherwürdiges Diagnoseereignis mit zugeordnetem statischem Attribut
Priority. - Found Entries (Kandidatenmenge): Vorselektierte Teilmenge der im Speicher vorhandenen Einträge, gefiltert nach der geringsten Priorität (
lowest priority).
- Zustandsattribute & Prädikate:
Priority: Funktionskritikalität des Ereignisses. GREATER bezeichnet hier eine höhere funktionale Priorität / Dringlichkeit.Passive: Statusbit eines Eintrags, dessen Fehlerbedingung aktuell nicht aktiv ansteht (TestFailed == 0).TestNotCompletedThisOperationCycle == 1: Bit 6 des UDS-Statusbytes (ISO 14229-1). Kennzeichnet Ereignisse, deren Testzyklus im aktuellen Operationszyklus noch nicht vollständig durchlaufen wurde.Oldest: Zeitstempel- bzw. FIFO-Kriterium zur Auflösung von Gleichständen innerhalb einer homogenen Kandidatengruppe.
- Konfigurationsparameter:
displacement strategy: Konfigurationsattribut im Diagnose-Deployment mit den Ausprägungennone,prioOcc(Priority & Occurrence) undfull(Combined Displacement).
3. Dynamisches Verhalten & Sequenzablauf
Der Ablauf startet synchron bei Eintritt der Bedingung: Speicher voll UND neues Event speicherpflichtig.
- Initialprüfung:
- Ist Verdrängung konfiguriert (
prioOccoderfull)? - Nein (
none): Direkter Abbruch via Pfadnone→Discard new reported event→ Exit: No displacement.
- Ist Verdrängung konfiguriert (
- Kandidaten-Vorselektion:
- Das DM durchsucht den Speicher nach Einträgen mit der numerisch/funktional niedrigsten Priorität (
Search event memory entries with lowest priority).
- Das DM durchsucht den Speicher nach Einträgen mit der numerisch/funktional niedrigsten Priorität (
- Strategiezweig A:
prioOcc(Priority & Occurrence):- Vergleich:
Priority(Reported Event) > Priority(Found Entries)? - Ja: Ältester gefundener Eintrag wird überschrieben (
Displace oldest found event memory entry) → Exit: Old event memory entry lost. - Nein:
Discard new reported event→ Exit: No displacement.
- Vergleich:
- Strategiezweig B:
full(Kombinierte Kriterien):- Stufe B1 (Priorität Neu > Alt):
- Falls
Priority(Reported) > Priority(Found):- Suche nach passiven Einträgen in der Kandidatenmenge.
- Passive Einträge vorhanden (Yes):
Preferred: Select passive entries→ Verdrängung des ältesten passiven Eintrags. - Keine passiven Einträge vorhanden (No):
Less preferred: Select any other entries→ Verdrängung des ältesten aktiven Eintrags.
- Falls
- Stufe B2 (Priorität Neu == Alt):
- Falls
Priority(Reported) == Priority(Found):- Prüfung auf passive Einträge:
- Vorhanden (Yes):
Select passive entries→ Verdrängung des ältesten passiven Eintrags. - Nicht vorhanden (No): Prüfung auf
TestNotCompletedThisOperationCycle == 1.- Einträge gefunden (Yes):
Select testNotCompltThisOpCycle entries→ Verdrängung des ältesten Eintrags dieser Teilmenge. - Keine gefunden (No): Alle Einträge gleicher Priorität sind aktiv und im aktuellen Zyklus getestet →
Discard new reported event.
- Einträge gefunden (Yes):
- Vorhanden (Yes):
- Prüfung auf passive Einträge:
- Falls
- Stufe B3 (Priorität Neu < Alt):
Discard new reported event→ Exit: No displacement.
- Stufe B1 (Priorität Neu > Alt):
4. Normative Relevanz & Entwickler-Hinweise
- Konfigurationsstrategie & Safety/OBD:
nonebirgt die Gefahr der Fehlerspeicher-Blockade (Denial-of-Storage): Früh auftretende, niederprioritäre Events verhindern das Loggen späterer, ASIL-relevanter Fehler.fullgarantiert maximalen Schutz aktiver Fehlerzustände (TestFailed == 1) und verhindert das Verdrängen verifizierter DTCs durch noch unbestätigte/nicht abgeschlossene Tests.
- Prioritätsinversion im Datenmodell:
- Im Schaubild bedeutet
GREATEReine höhere funktionale Priorität. In AUTOSAR-ARXML-Konfigurationen ist die Priorität häufig als numerischer Wert kodiert, bei dem oft0oder1die höchste Priorität darstellt. Stack-Entwickler müssen sicherstellen, dass die Vergleichsoperatoren (>vs.<) exakt auf das konfigurierte Mapping (numerisch vs. semantisch) abgestimmt sind.
- Im Schaubild bedeutet
- Persistenz & Nebeneffekte:
- Die Verdrängung eines Eintrags (
Displace oldest...) erfordert das synchrone/transaktionale Invalidieren der zugehörigen Freeze-Frames und Extended-Data-Records im NVM/Persistency-Layer (ara::perbzw.NvM), um Datenkorruption und verwaiste Datenblöcke zu verhindern. - UDS-Statusmeldungen und Callbacks (
DtcStatusChanged,EventStatusChanged) müssen den Verlust des verdrängten DTCs verlässlich an abonnierte Applikationen und externe Tester signalisieren.
- Die Verdrängung eines Eintrags (
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.