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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Hard fault на EXTI
pitt
сообщение Oct 18 2015, 16:47
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Использую RTX. Запрограммировал пин на внешнее прерывание(любое измемение). Обрабатываю прерывание простой посылкой сигнала основной системе и взводом прерывания. Работало долго и без проблем. Вдруг стал появляться Hard fault. Вскрытие показало, что плохой коннектор приводит к тому, что пин просто висит в воздухе как антенна. Т.е. я предполагаю, что происходит множество запросов на прерывание, до его обработки. Каким-то образом, это и приводит к Hard fault. Что не так с софтом? Что я недоучел?

Спасибо.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
smalcom
сообщение Oct 18 2015, 18:16
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



не все флаги может сбрасываете? происходит повторный вход и так до исчерпания памяти.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 18 2015, 18:53
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(pitt @ Oct 18 2015, 19:47) *
Вскрытие показало, что плохой коннектор приводит к тому, что пин просто висит в воздухе как антенна.


Вообще-то за такое - 2 по схемотехнике. Нога не должна болтаться в воздухе в 3м состоянии, так и МК запалить - дело секундное.

"Т.е. я предполагаю, что происходит множество запросов на прерывание, до его обработки." - Вообще-то новый запрос прерывания выставляется только после обработки предидущего (сброса флага), а вот вызов процедуры-обработчика будет постоянно, пока флаг не сбросишь, т.е. прога зависнет на обработке прерывания и всего-то biggrin.gif
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 18 2015, 19:20
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(mantech @ Oct 18 2015, 14:53) *
Вообще-то за такое - 2 по схемотехнике. Нога не должна болтаться в воздухе в 3м состоянии, так и МК запалить - дело секундное.

"Т.е. я предполагаю, что происходит множество запросов на прерывание, до его обработки." - Вообще-то новый запрос прерывания выставляется только после обработки предидущего (сброса флага), а вот вызов процедуры-обработчика будет постоянно, пока флаг не сбросишь, т.е. прога зависнет на обработке прерывания и всего-то biggrin.gif

Работаем с тем, что имеем...
От чего-же, все-таки, может вылезти Hard fault? Кстати, это происходит не моментально, а по прошествии некоторого неопределенного времени, но, в конце концов, ВСЕГДА.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 18 2015, 20:01
Сообщение #5


Гуру
******

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



Цитата(pitt @ Oct 18 2015, 22:20) *
От чего-же, все-таки, может вылезти Hard fault?

Можно строить версии и догадки, а можно обратиться к статусным регистрам и содержимому стека. Второй вариант быстрее и надежнее.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Oct 18 2015, 20:03
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
т.е. прога зависнет на обработке прерывания и всего-то

точно. я перепутал.
получается что возможна следующая ситуация: в обработчике прерывания сначала сбрасывается флаг, а потом выполняется какая-то работа. т.о. возможен повторный вызов обработчика.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 18 2015, 20:26
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (mantech @ Oct 18 2015, 21:53) *
Вообще-то за такое - 2 по схемотехнике. Нога не должна болтаться в воздухе в 3м состоянии, так и МК запалить - дело секундное.

Дурость написали.


QUOTE (aaarrr @ Oct 18 2015, 23:01) *
Можно строить версии и догадки, а можно обратиться к статусным регистрам и содержимому стека. Второй вариант быстрее и надежнее.

Именно так.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 18 2015, 20:34
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(zltigo @ Oct 18 2015, 23:26) *
Дурость написали.


Дурость- не дурость, а пара МК в свое время сдохла из-за этого.

Цитата(smalcom @ Oct 18 2015, 23:03) *
точно. я перепутал.
получается что возможна следующая ситуация: в обработчике прерывания сначала сбрасывается флаг, а потом выполняется какая-то работа. т.о. возможен повторный вызов обработчика.


В случае вложенных прерываний так и будет.

Сообщение отредактировал mantech - Oct 18 2015, 20:35
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 18 2015, 20:39
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(aaarrr @ Oct 18 2015, 16:01) *
Можно строить версии и догадки, а можно обратиться к статусным регистрам и содержимому стека. Второй вариант быстрее и надежнее.

Можно и даже нужно. Вот только:
- Hard fault viewer чаще всего не дает достаточно информации
- переполнения стека НЕТ и все маркеры на месте
- в пошаговом режиме(break point в обработчике) все работает как часы

Да, прерывания от подвешенной ноги возникают и обрабатываются. Я специально встроил счетчики вошел/обработал и пока нет Hard fault все как и ожидается, а потом вдруг раз и Hard fault ...
Тут-то и нужны версии и догадки...

Сообщение отредактировал pitt - Oct 18 2015, 20:42


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 18 2015, 20:49
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (mantech @ Oct 18 2015, 23:34) *
Дурость- не дурость, а пара МК в свое время сдохла из-за этого.

Смеяться или плакать предлагаете?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 18 2015, 20:55
Сообщение #11


Гуру
******

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



Цитата(pitt @ Oct 18 2015, 23:39) *
- Hard fault viewer чаще всего не дает достаточно информации

Так возьмите сами. Какая информация нужна - адрес? причина? - все доступно в регистрах и стеке.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 18 2015, 20:58
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (pitt @ Oct 18 2015, 23:39) *
- Hard fault viewer чаще всего не дает достаточно информации

Не порите чушь.
Адрес команды вылета, регистры и стек при вылете получаются вне зависимости ни от каких неведомых "вьюверов".




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 18 2015, 21:10
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(zltigo @ Oct 18 2015, 16:58) *
Не порите чушь.
Адрес команды вылета, регистры и стек при вылете получаются вне зависимости ни от каких неведомых "вьюверов".

Г.уру, от щедрот переполняющих Вас знаний, не изволили бы Вы обучить порющих чущь Вашему великомудрому умению читать то, что к моему глубокому сожалению, не написано в известной мне документации как, например: link. Кстати, тамже Вам и предоставится шанс познакомиться с "неведомым вьювером".


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 18 2015, 21:21
Сообщение #14


Гуру
******

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



Цитата(pitt @ Oct 19 2015, 00:10) *
не написано в известной мне документации как, например: link

И что же там не написано?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Oct 18 2015, 21:47
Сообщение #15


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

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



pitt, посмотрите вот эту тему.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

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

 


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


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