FreeRTOS-Debugging-Minikurs
In 90 Minuten vom HardFault zur Ursache: Stack-Overflow-Detection, Task-Trace und HardFault-Analyse am echten Board.
Das kannst du nach dem Kurs
- Du erkennst einen Stack-Overflow, bevor er zum HardFault wird – mit Hooks und Watermarks.
- Du liest aus den Fault-Registern (CFSR, HFSR, BFAR) die Ursache eines HardFaults ab.
- Du siehst mit einem Task-Trace, welcher Task wann läuft – und warum einer verhungert.
- Du hast eine Debugging-Checkliste für die nächsten Projekte.
Für wen dieser Minikurs gedacht ist
Die kostenlose Checkliste sagt dir, was schiefgeht. Dieser Minikurs zeigt dir in 90 Minuten, wie du es findest – mit den Werkzeugen, die in jedem Cortex-M-Projekt zur Verfügung stehen: Stack-Hooks, Fault-Register und ein Task-Trace.
Du bekommst ein kleines Übungsprojekt mit drei absichtlich eingebauten Fehlern. Am Ende hast du alle drei gefunden – und eine Checkliste für das nächste Mal.
Beispiel: HardFault-Handler, der etwas sagt
void HardFault_Handler(void)
{
__asm volatile(
"tst lr, #4 \n"
"ite eq \n"
"mrseq r0, msp \n"
"mrsne r0, psp \n"
"b hardfault_dump \n");
}
void hardfault_dump(uint32_t *stack)
{
uint32_t pc = stack[6];
uint32_t lr = stack[5];
uint32_t cfsr = SCB->CFSR;
uint32_t bfar = SCB->BFAR;
/* Ausgabe über Debugger/ITM: PC, LR, CFSR, BFAR */
for (;;) { }
}
Mit PC und dem Map-File weißt du in Sekunden, welche Funktion den Fault ausgelöst hat; CFSR sagt dir, ob es ein Bus-Fault, ein Usage-Fault oder ein Memory-Management-Fault war.
Für wen der Kurs ist
- Einsteiger, die ein erstes FreeRTOS-Projekt haben, das „manchmal hängt“
- Alle, die die kostenlose Checkliste gelesen haben und die Werkzeuge dahinter sehen wollen
Für wen der Kurs nicht ist
- Wer noch kein FreeRTOS-Projekt hat – starte mit dem Hauptkurs oder dem kostenlosen Udemy-Einstieg
- Wer bereits mit SystemView/Percepio und Fault-Registern arbeitet – das ist dir vermutlich bekannt
Curriculum
Module und Lektionen im Überblick. Du kannst in deinem Tempo lernen und jederzeit springen.
-
Modul 01 Fehler sichtbar machen 4 Lektionen
- 1.1 configCHECK_FOR_STACK_OVERFLOW und der Overflow-Hook
- 1.2 uxTaskGetStackHighWaterMark richtig nutzen
- 1.3 Malloc-Failed-Hook und Heap-Statistik
- 1.4 Assert-Strategie: configASSERT in Debug und Release
-
Modul 02 Ursachen finden 5 Lektionen
- 2.1 HardFault-Handler mit Register-Dump schreiben
- 2.2 CFSR, HFSR, BFAR, MMFAR lesen und interpretieren
- 2.3 Task-Trace mit SEGGER SystemView einrichten
- 2.4 Prioritätsinversion und Starvation im Trace erkennen
- 2.5 Übung: drei eingebaute Fehler im Übungsprojekt finden
Voraussetzungen
- Ein laufendes FreeRTOS-Projekt auf einem ARM-Cortex-M-Board (oder das mitgelieferte Übungsprojekt)
- Debugger-Verbindung (ST-Link, J-Link oder CMSIS-DAP) und GDB/IDE
Fragen zu diesem Kurs
Ist der Minikurs im Hauptkurs enthalten?
Die Inhalte überschneiden sich mit Modul 4 und 8 des Hauptkurses, dort jedoch ausführlicher. Wer den Hauptkurs kauft, braucht den Minikurs nicht zusätzlich.
Funktioniert das auch mit einem anderen RTOS?
Die HardFault-Analyse ist RTOS-unabhängig (Cortex-M). Stack-Hooks und Trace sind FreeRTOS-spezifisch, die Konzepte lassen sich aber auf Zephyr oder ThreadX übertragen.
FreeRTOS-Debugging-Minikurs
19 €