Leksykon IT › Programowanie › Malowanie stosu (stack painting)

Malowanie stosu (stack painting)

Programowanie Svenska → Zaktualizowano: 2026-11-02

Wypełnij stos znanym wzorcem przy starcie, a potem sprawdź, jaka część wzorca została nadpisana.

Mikrokontroler bez MMU nie ma strony ochronnej, która zaprotestuje, gdy stos urośnie za bardzo; po prostu nadpisuje, co leży obok. Jak duży musi być stos, rzadko da się wyliczyć z góry, bo przerwania, rekurencja i wywołania bibliotek dokładają głębokość, której nikt nie zapisał. Dlatego się mierzy.

Kod startowy „maluje” każdy stos wzorcem — FreeRTOS używa bajtu 0xA5, inni wolą 0xDEADBEEF — a po pewnym czasie pracy systemu skanuje się od dołu w górę w poszukiwaniu pierwszego słowa, które się zmieniło. Ta odległość to high-water mark, czyli największa dotychczasowa głębokość stosu. FreeRTOS udostępnia ją jako uxTaskGetStackHighWaterMark(). Mówi ona jednak tylko, co zdarzyło się podczas testu, a nie jaki jest najgorszy przypadek, więc zapas dodaje się potem — zwykle z westchnieniem.

← Wróć do leksykonu