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

 
 
> Как отловить глюк, приводящий к HardFault, Появляется и исчезает при добавлении/удалении строк кода
haker_fox
сообщение Sep 27 2016, 07:15
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Добрый день, господа!

Я понимаю, что проблема не имеет прямого отношения к FreeRTOS, но всё же.

Я использую версию 8.2.3 на LPC1768. Компилятор IAR 7.5.

Что наблюдается. Периодически прога стала вылетать в HardFault. Причём, если код немного перекомпилировать, буквально добавить/убавить строку, то всё работает прекрасно.

Я смотрел на адреса в обработчике HardFault, но не могу понять, как возникает ошибка, т.к. эти адреса указывают то на файлы самой оси, то на мой код. Может быть есть какая-то проблема именно с Cortex-M3 и именно с этой версией, о которой все знают, а я не знаю?

Да, включен монитор стека, он не переполняется, либо монитор не ловит ошибку.

В общем я в лёгком отчаянии, не знаю, как ловить глюк. Код довольно объёмный на текущий момент времени, поэтому по частям уже прогу не проверишь...

Спасибо за любой совет!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Sep 27 2016, 07:56
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(haker_fox @ Sep 27 2016, 10:15) *
Я смотрел на адреса в обработчике HardFault, но не могу понять, как возникает ошибка, т.к. эти адреса указывают то на файлы самой оси, то на мой код.

Помимо адреса у fault'а есть еще и причина, что с ней?

Касательно FreeRTOS, проверьте приоритеты прерываний, в которых используются системные вызовы.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 25 2016, 10:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aaarrr @ Sep 27 2016, 10:56) *
Касательно FreeRTOS, проверьте приоритеты прерываний, в которых используются системные вызовы.

С FreeRTOS пока не знаком, но например в uCOS функции ОС из ISR-ов просто так вызывать нельзя. Надо такие вызовы обрамлять IsrEnter()/IsrExit().
Возможно в FreeRTOS сделано аналогично.
Go to the top of the page
 
+Quote Post



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

 


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


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