Перейти к содержанию
    

FreeRTOS не отрабатывает StackOverflowHook

Добрый день!

Микроконтроллер зависает в середине работы программы, перебором нашёл что увеличение стека задачи решает проблему. Пытаюсь включить хук на стековрефлоу, чтобы в следующий раз, когда стека не хватит, не гадать в чём же дело. Но хук не отрабатывает. Подскажите пожалуйста, куда копать что попробовать?

Собственно включил флажок configCHECK_FOR_STACK_OVERFLOW 1, сделал функцию vApplicationStackOverflowHook зажигающую лампочку, проверил что она линкуется, но она не вызывается

Изменено пользователем Pjotar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что увеличение стека решает проблему, не означает, что проблема именно и только в нехватке размера стека.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Говорят, что чтение мануалов помогает (но не всем): FreeRTOS — стеки и проверка переполнения стека

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, EdgeAligned said:

чтение мануалов

спасибо, перечитывание помогло понять, что стековерфлоу нельзя поймать за руку, FreeRTOS может только при переключении задач оценить размер стека

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Включите configASSERT() и сделайте его вывод в UART или RTT.

Думаю много полезного увидите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...