Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: HardFault
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
athlon64
Проект на STM32F217 основан на примере с сайта ST "FreeRTOS_LwIP_STM32F217", добавлена задача, обрабатывающая modbus-rtu-пакеты.
При постоянном опросе по modbus и пинге IP контроллера через некоторое время (от 15 минут до часа) попадаю в обработчик HardFault.
Пробовал увеличивать стеки всех задач, кучу FreeRTOS и кучу LwIP, никак не повлияло. Подскажите в какую сторону копать?
Регистры процессора в момент попадания в обработчик имеют следующее состояние:

AHTOXA
Похоже на утечку памяти. Попробуйте мониторить свободную память кучи.
adnega
Цитата(AHTOXA @ Apr 28 2012, 10:54) *
Похоже на утечку памяти. Попробуйте мониторить свободную память кучи.


Если увеличение стеков и т.п. не изменяет количественно ситуацию (время до "падения"), то осмелюсь предположить, что дело в приоритетах прерываний... По личному опыту: "FreeRTOS", "HardFault" и "приоритеты прерываний" часто "соображают на троих"...
athlon64
Нашёл причину. yeah.gif
У меня, как и у многих начинающих работать с FreeRTOS, была проблема с неправильно назначенными приоритетами прерываний.
Прерывание по окончанию фрейма имело приоритет выше, чем configMAX_SYSCALL_INTERRUPT_PRIORITY (в данном случае < 11).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.