Zum Inhalt springen
Fortgeschritten 1,5 Std. · 2 Module · 9 Lektionen

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.

  1. Modul 01 Fehler sichtbar machen 4 Lektionen
    1. 1.1 configCHECK_FOR_STACK_OVERFLOW und der Overflow-Hook
    2. 1.2 uxTaskGetStackHighWaterMark richtig nutzen
    3. 1.3 Malloc-Failed-Hook und Heap-Statistik
    4. 1.4 Assert-Strategie: configASSERT in Debug und Release
  2. Modul 02 Ursachen finden 5 Lektionen
    1. 2.1 HardFault-Handler mit Register-Dump schreiben
    2. 2.2 CFSR, HFSR, BFAR, MMFAR lesen und interpretieren
    3. 2.3 Task-Trace mit SEGGER SystemView einrichten
    4. 2.4 Prioritätsinversion und Starvation im Trace erkennen
    5. 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 €

Jetzt kaufen