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

 
 
> STM32L151 Hardfault как найти причину ?
MiklPolikov
сообщение Mar 1 2016, 18:01
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Стабильно попадаю в Hardfault.
Используется FreeRTOS
При раскидывание по коду метки xxx_error=1 ; xxx_error=2 .... Hardfault исчезает, но конкретного места это не выдаёт.

При попадании в Hardfault под отладкой:
- в Call Stuck Window пусто, один Hardfault
Регистры ядра
SCB - > CFSR=0x00000400
SCB - > HFSR=0x40000000
т.е стоят биты:
Bit 10 IMPRECISERR: Imprecise data bus error
When the processor sets this bit to 1, it does not write a fault address to the BFAR.
This is an asynchronous fault.
Bit 30 FORCED: Forced hard fault
Indicates a forced hard fault, generated by escalation of a fault with configurable priority that
cannot be handles, either because of priority or because it is disabled:
When this bit is set to 1, the hard fault handler must read the other fault

Вопрос: как искать причину такого глюка ?
Что вообще может быть причиной ?

Заранее спасибо !


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
romas2010
сообщение Mar 2 2016, 19:13
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 25-11-11
Пользователь №: 68 515



Цитата(MiklPolikov @ Mar 1 2016, 21:01) *
Стабильно попадаю в Hardfault.
Используется FreeRTOS
При раскидывание по коду метки xxx_error=1 ; xxx_error=2 .... Hardfault исчезает, но конкретного места это не выдаёт.

При попадании в Hardfault под отладкой:
- в Call Stuck Window пусто, один Hardfault
......
Заранее спасибо !


Обычно такое происходит если
-невыровненые данные,когда команды ldm/stm
- pop{...,pc} где по смещению места регистра возврата в стеке почему-то левое значение,что-то гадит стек(особенно актуально для RTOS)..помогает увеличение зазмера стека задачи,но на самотек не пускать все равно..кстати,это самая гадкая ситуация-ведь регистр РС может находиться в диапазоне адресов вашей же программы и ваша же программа еще продолжает таки какое-то время работать и обеспечит вам напряженный день и бессонную ночь....
- смотрите также значение регистров r0-r3 они сохраняются при прерывании и иногда используются компилятором(keil) для хранения указателей,возможно обращение за гранью памяти..разберитесь,почему они вдруг указывают на левый адрес,что-то с алгоритмом вашим не так

да,весьма хорошую тему предложил Сергей Борщ...по крайней мере можно попытаться локализовать место возникновения..но и keil тоже продвинутая среда-окно CALL STACK->курсор мыши на функцию+правая кнопка->show caller code

Сообщение отредактировал romas2010 - Mar 2 2016, 19:29
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MiklPolikov   STM32L151 Hardfault как найти причину ?   Mar 1 2016, 18:01
- - ViKo   Искать так же, как в 500-х описанных ранее случаев...   Mar 1 2016, 18:33
|- - MiklPolikov   Цитата(ViKo @ Mar 1 2016, 21:33) Искать т...   Mar 1 2016, 18:37
|- - ViKo   Цитата(MiklPolikov @ Mar 1 2016, 21:37) Е...   Mar 1 2016, 19:25
- - Сергей Борщ   Я нашел для себя примитивное решение: Кодvoid Hard...   Mar 1 2016, 22:46
|- - ViKo   Цитата(Сергей Борщ @ Mar 2 2016, 01:46) Я...   Mar 3 2016, 10:35
||- - Сергей Борщ   Цитата(ViKo @ Mar 3 2016, 12:35) А без пе...   Mar 3 2016, 12:12
||- - Tarbal   Цитата(Сергей Борщ @ Mar 3 2016, 15:12) Я...   Mar 3 2016, 13:25
||- - ViKo   Цитата(Сергей Борщ @ Mar 3 2016, 15:12) Я...   Mar 22 2016, 11:22
||- - Сергей Борщ   Цитата(ViKo @ Mar 22 2016, 13:22) Гениаль...   Mar 22 2016, 11:26
||- - ViKo   Цитата(Сергей Борщ @ Mar 22 2016, 14:26) ...   Mar 22 2016, 11:38
||- - Сергей Борщ   Цитата(ViKo @ Mar 22 2016, 13:38) Затем, ...   Mar 22 2016, 12:15
|- - jcxz   Цитата(Сергей Борщ @ Mar 2 2016, 04:46) О...   Mar 10 2016, 10:16
|- - adnega   Цитата(jcxz @ Mar 10 2016, 13:16) Раз пол...   Mar 10 2016, 11:32
|- - scifi   Цитата(jcxz @ Mar 10 2016, 13:16) Раз пол...   Mar 10 2016, 11:44
- - SasaVitebsk   Скажем так. Есть 2 вида вылета. Первый происходит...   Mar 2 2016, 06:55
|- - MiklPolikov   Цитата(SasaVitebsk @ Mar 2 2016, 09:55) В...   Mar 3 2016, 07:46
||- - SasaVitebsk   Цитата(MiklPolikov @ Mar 3 2016, 10:46) В...   Mar 3 2016, 10:40
|- - MiklPolikov   Цитата(SasaVitebsk @ Mar 2 2016, 09:55) Н...   Mar 7 2016, 08:11
|- - SasaVitebsk   Цитата(MiklPolikov @ Mar 7 2016, 11:11) Т...   Mar 10 2016, 05:57
- - adnega   Цитата(MiklPolikov @ Mar 1 2016, 21:01) В...   Mar 3 2016, 20:44
- - x893   Для FreeRTOS использовал Percepio - полезная прог...   Mar 10 2016, 10:10
- - ViKo   Я редко использую ассемблер. В данном случае я дов...   Mar 22 2016, 12:24
|- - scifi   Цитата(ViKo @ Mar 22 2016, 15:24) 4 байта...   Mar 22 2016, 13:07
|- - ViKo   Цитата(scifi @ Mar 22 2016, 16:07) Подсчё...   Mar 22 2016, 13:26
|- - scifi   Цитата(ViKo @ Mar 22 2016, 16:26) Это не ...   Mar 22 2016, 15:22
- - Сергей Борщ   Да, пожалуй, я погорячился. Приношу извинения.   Mar 22 2016, 13:32
- - ViKo   Ишь, прямо эпидемия извинений. У предложенного ...   Mar 22 2016, 16:10
- - Сергей Борщ   Цитата(ViKo @ Mar 22 2016, 18:10) У предл...   Mar 22 2016, 16:16
- - ViKo   Цитата(Сергей Борщ @ Mar 22 2016, 19:16) ...   Mar 22 2016, 16:27


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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 15:21
Рейтинг@Mail.ru


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