Lessico IT › Programmazione › Stack high-water mark

Stack high-water mark

Programmazione Svenska → Aggiornato: 2026-11-03

Lo spazio minimo di stack libero che un task abbia mai avuto, misurato "verniciando" lo stack e controllando quanta vernice è stata grattata via.

In un RTOS ogni task ha il proprio stack di dimensione fissa, e uno stack troppo piccolo produce guasti indistinguibili da una corruzione casuale della memoria. La tecnica è semplice: alla creazione lo stack viene riempito con un pattern noto (FreeRTOS usa 0xA5) e in seguito si contano i byte, partendo dal fondo, che lo contengono ancora. uxTaskGetStackHighWaterMark() restituisce esattamente quel numero.

Il valore riflette solo i percorsi di codice effettivamente eseguiti. Il peggiore interrupt, arrivato durante la catena di chiamate più profonda, potrebbe non essersi mai verificato nei test: si aggiunge quindi un margine o si affianca un'analisi statica come -fstack-usage di GCC. Una regione di guardia MPU intercetta l'overflow invece di lasciare che calpesti i dati del vicino, e produce un HardFault che almeno si può debuggare.

← Torna al lessico