Pintado de pila (stack painting)
Llenar una pila con un patrón conocido al arrancar y comprobar después cuánto de ese patrón se ha sobrescrito.
Un microcontrolador sin MMU no tiene página de guarda que proteste cuando la pila crece demasiado; simplemente machaca lo que haya al lado. Cuánto debe medir una pila casi nunca se puede calcular de antemano, porque las interrupciones, la recursión y las bibliotecas añaden una profundidad que nadie anotó. Así que se mide.
El código de arranque pinta cada pila con un patrón —FreeRTOS usa el byte 0xA5, otros prefieren 0xDEADBEEF— y, tras un rato de funcionamiento, se recorre desde el fondo buscando la primera palabra alterada. Esa distancia es la marca de agua máxima, lo más hondo que ha llegado nunca la pila. FreeRTOS la expone como uxTaskGetStackHighWaterMark(). Solo dice lo que pasó durante la prueba, no el peor caso, así que luego se añade un margen, normalmente con un suspiro.