Pjotar 0 4 февраля Опубликовано 4 февраля (изменено) · Жалоба Добрый день! Микроконтроллер зависает в середине работы программы, перебором нашёл что увеличение стека задачи решает проблему. Пытаюсь включить хук на стековрефлоу, чтобы в следующий раз, когда стека не хватит, не гадать в чём же дело. Но хук не отрабатывает. Подскажите пожалуйста, куда копать что попробовать? Собственно включил флажок configCHECK_FOR_STACK_OVERFLOW 1, сделал функцию vApplicationStackOverflowHook зажигающую лампочку, проверил что она линкуется, но она не вызывается Изменено 4 февраля пользователем Pjotar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amaora 20 4 февраля Опубликовано 4 февраля · Жалоба То, что увеличение стека решает проблему, не означает, что проблема именно и только в нехватке размера стека. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 53 4 февраля Опубликовано 4 февраля · Жалоба Говорят, что чтение мануалов помогает (но не всем): FreeRTOS — стеки и проверка переполнения стека Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pjotar 0 4 февраля Опубликовано 4 февраля · Жалоба 1 hour ago, EdgeAligned said: чтение мануалов спасибо, перечитывание помогло понять, что стековерфлоу нельзя поймать за руку, FreeRTOS может только при переключении задач оценить размер стека Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 5 февраля Опубликовано 5 февраля · Жалоба Включите configASSERT() и сделайте его вывод в UART или RTT. Думаю много полезного увидите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться