реклама на сайте
подробности

 
 
 
Closed TopicStart new topic
> HardFault
athlon64
сообщение Apr 28 2012, 05:29
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Проект на STM32F217 основан на примере с сайта ST "FreeRTOS_LwIP_STM32F217", добавлена задача, обрабатывающая modbus-rtu-пакеты.
При постоянном опросе по modbus и пинге IP контроллера через некоторое время (от 15 минут до часа) попадаю в обработчик HardFault.
Пробовал увеличивать стеки всех задач, кучу FreeRTOS и кучу LwIP, никак не повлияло. Подскажите в какую сторону копать?
Регистры процессора в момент попадания в обработчик имеют следующее состояние:


Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Руслан
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 28 2012, 07:54
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Похоже на утечку памяти. Попробуйте мониторить свободную память кучи.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 28 2012, 11:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



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


Если увеличение стеков и т.п. не изменяет количественно ситуацию (время до "падения"), то осмелюсь предположить, что дело в приоритетах прерываний... По личному опыту: "FreeRTOS", "HardFault" и "приоритеты прерываний" часто "соображают на троих"...
Go to the top of the page
 
+Quote Post
athlon64
сообщение May 3 2012, 03:01
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Нашёл причину. yeah.gif
У меня, как и у многих начинающих работать с FreeRTOS, была проблема с неправильно назначенными приоритетами прерываний.
Прерывание по окончанию фрейма имело приоритет выше, чем configMAX_SYSCALL_INTERRUPT_PRIORITY (в данном случае < 11).


--------------------
Руслан
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 03:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.02386 секунд с 7
ELECTRONIX ©2004-2016