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

 
 
> STM32F407VET6. Свистопляска с HardFault-ами, Бесстстемные исключения HardFault
nanorobot
сообщение Dec 29 2015, 11:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Может ли быть одной из причин HardFault износ ресурса флэш памяти? Имею макет с STM32F407VET6. Количество перезаписей солидное. Последнее время участилтсь случаи хардфаулта. ПРи вызове одной и той же прцедуры и в одной и той же ситуации - может быть, а может не бытью Под отладчиком редко, а без него практически всегда...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlanDrakes
сообщение Dec 31 2015, 16:04
Сообщение #2


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

Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474



Так же порекомендую проверить потребление питания. Возможно, задуматься о дополнительном питании (прямо на ножки питания 3V) от внешней LM1117-3.3 и тому подобных.
Похожая ситуация:
Контроллер посажен на АКБ -> LM1117 -> работает.
Контроллер посажен на БП (5V 2A) -> LM1117 -> Случайные сбросы и отказы программироваться.

Так же можно проверить ёмкости на плате.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jan 4 2016, 21:52
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(AlanDrakes @ Dec 31 2015, 21:04) *
Так же можно проверить ёмкости на плате.


Исключил из процедуры вызов библиотечной функцмм pow() - заменил самописаной - наваждение прошло...
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 4 2016, 22:57
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(nanorobot @ Jan 5 2016, 00:52) *
Исключил из процедуры вызов библиотечной функцмм pow() - заменил самописаной - наваждение прошло...

А осадок остался.
Причина не найдена, что, скорее всего, означает, что глюк вернётся снова.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jan 5 2016, 09:02
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(scifi @ Jan 5 2016, 03:57) *
А осадок остался.
Причина не найдена, что, скорее всего, означает, что глюк вернётся снова.

... накаркал. Типовая ситуация - в UFSR взводится бит INVSTATE, об'яснение из дефинитив гуиде - attempts to switch to an invalid state (e.g. ARM) - мож подтолкнете в верном направлении?

самое что убивает - при пошаговой отладке глюк практически никогда не воспроизводится
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 5 2016, 11:03
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(nanorobot @ Jan 5 2016, 12:02) *
... накаркал. Типовая ситуация - в UFSR взводится бит INVSTATE, об'яснение из дефинитив гуиде - attempts to switch to an invalid state (e.g. ARM) - мож подтолкнете в верном направлении?

Подталкиваю: нужно расшифровать всю информацию, доступную обработчику Hard Fault. Вычислить адрес инструкции, на которой проц спотыкается, посмотреть, что там.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jan 5 2016, 11:49
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(scifi @ Jan 5 2016, 16:03) *
Подталкиваю: нужно расшифровать всю информацию, доступную обработчику Hard Fault. Вычислить адрес инструкции, на которой проц спотыкается, посмотреть, что там.

ощутил едва уловимый толчок...))

Сообщение отредактировал nanorobot - Jan 5 2016, 11:50
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jan 5 2016, 13:15
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(nanorobot @ Jan 5 2016, 12:49) *
ощутил едва уловимый толчок...))

К какой точке приложения? wink.gif.
TC: так где расчипятка актуального дампа hardfault? Если определится адрес слёта, берем карту памяти компоновщика, ищем, что там поблизости искомого адреса, находим тело функции. Потом можно под отладчиком там остановиться (даже если при этом не сгенерится исключение) и посмотреть, а нет ли там... рекурсии, которая съедает стек, которого, возможно, маловато будет! Как такая идейка?

Сообщение отредактировал KnightIgor - Jan 5 2016, 13:15
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 5 2016, 14:43
Сообщение #9


Гуру
******

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



Цитата(KnightIgor @ Jan 5 2016, 19:15) *
TC: так где расчипятка актуального дампа hardfault? Если определится адрес слёта, берем карту памяти компоновщика, ищем, что там поблизости искомого адреса, находим тело функции. Потом можно под отладчиком там остановиться (даже если при этом не сгенерится исключение) и посмотреть, а нет ли там... рекурсии, которая съедает стек, которого, возможно, маловато будет! Как такая идейка?

Кстати - есть ещё в природе отладчики с функцией трэйсера! Очень пользительная вещь в данном случае!
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jan 5 2016, 17:28
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(jcxz @ Jan 5 2016, 19:43) *
Кстати - есть ещё в природе отладчики с функцией трэйсера! Очень пользительная вещь в данном случае!


CFSR = 0x20000
HFSR = 0x40000000
DFSR = 0x01
AFSR = 0x0
MMAR = 0xE000ED34
BFAR = 0xE000ED38
PSR = 0x60000000
LR = 0x800A1D7
R0 = 0x0
R1 = 0x2001D370
R2 = 0x2001D370
R12 = 0x0

LR содержит, если я правильно понимаю, адрес следующей инструкции по отношению к вызвавшей ХФ.
дизасм сотв фрагмента прилагаю. Судя по всему там содержатся сервисы ChibiOS, которую я использую.

Сообщение отредактировал IgorKossak - Jan 5 2016, 19:19
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nanorobot   STM32F407VET6. Свистопляска с HardFault-ами   Dec 29 2015, 11:05
- - scifi   Что есть "солидное" число? 100? 1000? 10...   Dec 29 2015, 11:22
|- - nanorobot   Цитата(scifi @ Dec 29 2015, 17:22) Что ес...   Dec 29 2015, 16:03
|- - mantech   Цитата(nanorobot @ Dec 29 2015, 19:03) со...   Dec 29 2015, 17:15
|- - scifi   Цитата(nanorobot @ Dec 29 2015, 19:03) со...   Dec 30 2015, 05:11
- - ViKo   Строку, содержащую whille никак нельзя назвать нев...   Dec 29 2015, 16:46
- - AndrejM   возьмите другую плату да проверьте. у меня есть то...   Dec 30 2015, 04:12
- - ViKo   Стек для задач попробуйте увеличить.   Jan 5 2016, 18:37
|- - nanorobot   Цитата(ViKo @ Jan 5 2016, 23:37) Стек для...   Jan 5 2016, 19:03
|- - Quasar   Цитата(nanorobot @ Jan 5 2016, 22:03) Я к...   Jan 10 2016, 09:05
- - SasaVitebsk   Квалификатор static указывает что переменную необх...   Jan 8 2016, 12:40
- - scifi   Цитата(SasaVitebsk @ Jan 8 2016, 15:40) П...   Jan 8 2016, 12:53


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:01
Рейтинг@Mail.ru


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