feat: Crash-Logging + Watchdog-Timer #8

Open
opened 2026-06-04 07:50:37 +02:00 by ppfeiffer · 0 comments
Owner

Ziel

Stabilität für unbeaufsichtigten Dauerbetrieb.

Crash-Logging

  • Bei Absturz (Panic-Handler) Stack-Trace in /ops/crash.log auf SD schreiben
  • Beim nächsten Boot: wenn /ops/crash.log existiert → im ScreenTerminal anzeigen und Datei umbenennen zu /ops/crash_YYYYMMDD.log
  • Infos: Reset-Grund (esp_reset_reason()), Crash-Adresse, Task-Name, freier Heap zum Crash-Zeitpunkt

Watchdog

  • Hardware-Watchdog des ESP32-S3 nutzen (esp_task_wdt_init())
  • Timeout: 30 Sekunden
  • In loop() regelmäßig füttern (esp_task_wdt_reset())
  • Bei Hang → automatischer Neustart, Grund in crash.log

Dateien

  • src/utils/CrashLog.h/cpp — neues Modul
  • src/main.cpp — Watchdog-Init in setup(), Reset in loop()
  • src/ui/ScreenTerminal.cpp — Crash-Log beim Boot anzeigen

Aufwand

~2h

## Ziel Stabilität für unbeaufsichtigten Dauerbetrieb. ## Crash-Logging - Bei Absturz (Panic-Handler) Stack-Trace in `/ops/crash.log` auf SD schreiben - Beim nächsten Boot: wenn `/ops/crash.log` existiert → im ScreenTerminal anzeigen und Datei umbenennen zu `/ops/crash_YYYYMMDD.log` - Infos: Reset-Grund (`esp_reset_reason()`), Crash-Adresse, Task-Name, freier Heap zum Crash-Zeitpunkt ## Watchdog - Hardware-Watchdog des ESP32-S3 nutzen (`esp_task_wdt_init()`) - Timeout: 30 Sekunden - In `loop()` regelmäßig füttern (`esp_task_wdt_reset()`) - Bei Hang → automatischer Neustart, Grund in crash.log ## Dateien - `src/utils/CrashLog.h/cpp` — neues Modul - `src/main.cpp` — Watchdog-Init in setup(), Reset in loop() - `src/ui/ScreenTerminal.cpp` — Crash-Log beim Boot anzeigen ## Aufwand ~2h
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ppfeiffer/OpenMeshOS#8
No description provided.