Kurz erklärt
Ein regelmäßig bedienter Watchdog beweist nicht, dass die Anwendung arbeitet. Die Freigabe sollte davon abhängen, ob alle überwachten Funktionen innerhalb ihrer jeweiligen Frist Fortschritt gemacht haben.
Fortschritt für jede Funktion definieren
Für eine Messaufgabe kann Fortschritt eine abgeschlossene und geprüfte Messung sein; für eine Kommunikation die Bearbeitung oder kontrollierte Ablehnung eines Auftrags. Ein Zähler im Timerinterrupt erkennt dagegen keine blockierte Hauptaufgabe. Zephyr zeigt mit getrennten Task-Watchdog-Kanälen ein entsprechendes Überwachungsmodell Zephyr Project — Task Watchdog.
Zeitfenster aus realen Abläufen ableiten
Erfassen Sie die längste zulässige Bearbeitung einschließlich Flash-Zugriff, Buswartezeit und Startphase. Legen Sie pro Aufgabe ein begründetes Zeitfenster und eine definierte Fehlerreaktion fest. Berücksichtigen Sie Schlafzustände und die tatsächliche Watchdog-Taktquelle. Sehr großzügige Fristen verhindern Fehlalarme, können aber die gewünschte Fehlererkennung zu weit verzögern.
Die Überwachung selbst herausfordern
Blockieren Sie im Test gezielt eine Aufgabe, während Timer und andere Aufgaben weiterlaufen. Prüfen Sie anschließend einen Stillstand des Schedulers, soweit die Plattform das kontrolliert erlaubt. Dokumentieren Sie Erkennungszeit, Ausgangszustände und Neustartgrund. Nach wiederholten Resets sollte das Gerät einen festgelegten Diagnosezustand erreichen, statt einen Aktor endlos neu anzusteuern.
Checkliste für die Prüfung
- Fortschrittsmerkmal und Frist je Aufgabe festlegen.
- Blockade trotz laufendem Timer testen.
- Resetursache und Verhalten nach mehreren Neustarts prüfen.
Häufige Fragen
Soll der Watchdog einfach im Interrupt bedient werden?
Nur wenn das Überwachungskonzept dadurch die relevanten Fehler tatsächlich erkennt. Ein unabhängiges periodisches Bedienen kann blockierte Anwendungsaufgaben verdecken.
Technische Quellen
Passende Entwicklungsleistung