IT-словарь › Программирование › Метка максимального заполнения стека

Метка максимального заполнения стека

Программирование Svenska → Обновлено: 2026-11-03

Наименьший объём свободного стека задачи за всё время работы — измеряется закраской стека и проверкой, насколько краска успела облупиться.

В RTOS у каждой задачи свой стек фиксированного размера, а слишком маленький стек даёт сбои, неотличимые от случайной порчи памяти. Приём прост: при создании стек заполняют известным шаблоном (FreeRTOS использует 0xA5), а позже считают, сколько байт от дна всё ещё его хранят. Именно это число и возвращает uxTaskGetStackHighWaterMark().

Метка отражает только те пути кода, что реально выполнялись. Худшее прерывание в момент самой глубокой цепочки вызовов в тестах могло ни разу не случиться, поэтому добавляют запас или подкрепляют статическим анализом, например GCC-флагом -fstack-usage. Защитная область MPU ловит переполнение, не давая затоптать данные соседа, — и порождает HardFault, который по крайней мере можно отладить.

← Назад к словарю