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

 
 
> Hard Fault Exception на кортексе м3, как узнать откуда прилезло
klen
сообщение Feb 4 2010, 10:37
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Здравствуйте.
работает программа на stm32f107 uIP+DHCP+HTTPD+TELNETD.

все просто замечательно работает, но не долго - минуту, через примерно одинаковый интервал времени - systick показывает очень близкие значения, все вываливается в HardFaultException с вероятностью 1. видимо гдето чето кончаетсо, буфер например. пытаюсь понять.

как высчитать в обработчике адрес с которого все это прилитело?

нагугленная конструкция
asm volatile ("MRS R0,PSP") ;
asm volatile ("LDR R1,[R0,#24] \n");
выдает чето мне непонятное.

спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Шаманъ
сообщение Mar 31 2017, 14:01
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(jcxz @ Mar 31 2017, 16:11) *
Читайте выше. Из соответствующих регистров можно прочитать реальный адрес где произошёл fault.

В смысле мне себя почитать?
Цитата(Шаманъ @ Mar 31 2017, 12:38) *
Вывалились в обработчик посмотрели регистры, вернулись обратно (так сказать с комфортом) и посмотрели как содержимое регистров использовалось в момент вылета.

rolleyes.gif

Цитата(Forger @ Mar 31 2017, 16:39) *
В подавляющем большинстве подобных случаев в этой злополучной строке будет обращение по указателю, особенно с приведением к другому типу. smile3046.gif
Например, как тут:
Код
if(--(*(MyClass*)p) )

Я обычно в таких случаях смотрю ассемблерный код - это намного продуктивнее.
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 31 2017, 14:11
Сообщение #3


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Шаманъ @ Mar 31 2017, 17:01) *
Я обычно в таких случаях смотрю ассемблерный код - это намного продуктивнее.

А я под словом "продуктивный" понимаю такой код, который вообще исключает всякую необходимость рыться в "белье" компилятора biggrin.gif

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Mar 31 2017, 14:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(Forger @ Mar 31 2017, 17:11) *
А я под словом "продуктивный" понимаю такой код, который вообще исключает всякую необходимость рыться в "белье" компилятора biggrin.gif

Я тоже за качественный и легко читаемый код - и в этом Вас поддерживаю, обычно это предполагает и отсутствие предмета обсуждения. Но раз уж отлавливаем faultы, то смысл заглянуть в ассемблер есть. А порыться в том, что наделал компилятор я лично люблю, бывает очень полезно и познавательно.
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 31 2017, 15:04
Сообщение #5


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Шаманъ @ Mar 31 2017, 17:35) *
Но раз уж отлавливаем faultы, то смысл заглянуть в ассемблер есть.

Честно, мне было бы вломы рыться в том, что там наделал компилятор на мою кривую конструкцию.
По мне быстрее и проще переписать саму кривую конструкцию, на которой вылезает fault, иначе этот fault вылезет в другом месте ....
Но если бесконечный поиск fault-ов и ковыряние в ассемблере - это некое хобби, то это меняет дело sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Mar 31 2017, 16:08
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(Forger @ Mar 31 2017, 18:04) *
Честно, мне было бы вломы рыться в том, что там наделал компилятор на мою кривую конструкцию.

У меня конструкции обычно достаточно прямые, чтобы код (в смысле сгенерированный компилятором) легко читался.

Цитата
Но если бесконечный поиск fault-ов и ковыряние в ассемблере - это некое хобби, то это меняет дело sm.gif

Не надо передергивать. За последние пол года могу вспомнить только два случая, оба решились в течении пары минут.
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 31 2017, 16:28
Сообщение #7


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Шаманъ @ Mar 31 2017, 19:08) *
У меня конструкции обычно достаточно прямые, чтобы код (в смысле сгенерированный компилятором) легко читался.
Не надо передергивать. За последние пол года могу вспомнить только два случая, оба решились в течении пары минут.

Ну, это у вас заняло всего пару минут и, полагаю, что вы можете позволить себе полистать ассемблерный код под хорошую сигару и стаканчик коньяка у теплого камина, так сказать, в удовольствие sm.gif
Однако, я сильно сомневаюсь, что это можно сказать про того, кто готов заводить целые темы только лишь ради поиска тривиальной причины fault-а (я не про ТС конкретно, а воообще, в целом).
Потому и ваша рекомендация "заглянуть в ассемблерный код", по-моему, звучит несколько надменно что ли ...
Впрочем, не лучше звучат и мои персто-указующие назидания wacko.gif

зы. Что-то тема пошла не в то русло ...


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Mar 31 2017, 17:16
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(Forger @ Mar 31 2017, 19:28) *
Потому и ваша рекомендация "заглянуть в ассемблерный код", по-моему, звучит несколько надменно что ли ...

Та не, я ничего такого не имел ввиду. Извиняюсь, если кого-то обидел. В конце концов все мы когда-то знали и умели мало sm.gif
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 31 2017, 18:05
Сообщение #9


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Шаманъ @ Mar 31 2017, 20:16) *
В конце концов все мы когда-то знали и умели мало sm.gif

Согласен, очень трудно делиться опытом так, чтобы это не звучало менторским тоном ... у меня ни разу не получалось )))



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- klen   Hard Fault Exception на кортексе м3   Feb 4 2010, 10:37
- - klen   проблему я пофиксил - SNTP клиент косячил. все пре...   Feb 4 2010, 17:12
|- - AHTOXA   Вот так у меня сработало: Кодvoid hard_fault_hand...   Feb 5 2010, 11:23
|- - klen   очень хорошо будем смотреть в "бубен около ко...   Feb 5 2010, 14:45
|- - AHTOXA   Цитата(klen @ Feb 5 2010, 19:45) только с...   Feb 5 2010, 14:58
|- - klen   уря уря уря!!! naked действительно во ...   Feb 5 2010, 15:23
- - juvf   Выпадаю в Hard Fault Exception. описал обработчик...   Feb 25 2014, 18:54
|- - AHTOXA   Судя по Цитата(juvf @ Feb 26 2014, 00:54...   Feb 26 2014, 11:30
|- - jcxz   Цитата(AHTOXA @ Feb 26 2014, 17:30) Судя ...   Feb 27 2014, 02:20
|- - AHTOXA   Цитата(jcxz @ Feb 27 2014, 08:20) Почему ...   Feb 27 2014, 05:21
|- - jcxz   Цитата(AHTOXA @ Feb 27 2014, 11:21) Потом...   Feb 27 2014, 06:09
|- - Сергей Борщ   Цитата(jcxz @ Feb 27 2014, 08:09) Адрес в...   Feb 27 2014, 06:56
||- - jcxz   Функции как вызываются? Правильно: обычно через BL...   Feb 27 2014, 07:48
||- - Сергей Борщ   Цитата(jcxz @ Feb 27 2014, 09:48) BL что ...   Feb 27 2014, 09:51
||- - jcxz   Цитата(Сергей Борщ @ Feb 27 2014, 15:51) ...   Feb 27 2014, 11:42
|- - AHTOXA   Цитата(jcxz @ Feb 27 2014, 12:09) Адрес в...   Feb 27 2014, 08:46
|- - jcxz   Цитата(AHTOXA @ Feb 27 2014, 14:46) Судя ...   Feb 27 2014, 09:11
|- - AHTOXA   Цитата(jcxz @ Feb 27 2014, 15:11) И что? ...   Feb 27 2014, 10:54
|- - jcxz   Цитата(AHTOXA @ Feb 27 2014, 16:54) Потом...   Feb 27 2014, 11:51
|- - juvf   Цитата(jcxz @ Feb 27 2014, 16:51) если ад...   Feb 27 2014, 12:05
||- - jcxz   Цитата(juvf @ Feb 27 2014, 18:05) ну адре...   Feb 27 2014, 12:50
||- - juvf   Цитата(jcxz @ Feb 27 2014, 17:50) Если у ...   Feb 27 2014, 13:03
|- - AHTOXA   Цитата(juvf @ Feb 27 2014, 17:48) Думаю, ...   Feb 27 2014, 15:00
|- - jcxz   Цитата(AHTOXA @ Feb 27 2014, 21:00) При т...   Feb 28 2014, 02:32
|- - AHTOXA   Цитата(jcxz @ Feb 28 2014, 08:32) Вот тол...   Feb 28 2014, 04:36
|- - jcxz   Я с вами тоже   Feb 28 2014, 05:59
- - juvf   спасибо. перед 0x8002c09 такой код КодLDR R1, ...   Feb 26 2014, 12:28
|- - AHTOXA   Цитата(juvf @ Feb 26 2014, 18:28) перед 0...   Feb 26 2014, 12:54
|- - Axel   Цитата(juvf @ Feb 26 2014, 16:28) Подозре...   Feb 26 2014, 14:00
- - MALLOY2   Если это иар и используется его алокатор, то вам h...   Feb 26 2014, 12:47
- - ViKo   При прерываниях адрес возврата сохраняется в стек ...   Feb 27 2014, 05:51
- - juvf   Думаю, что я нашел граблю. я в одном потоке делаю ...   Feb 27 2014, 11:48
- - juvf   Давайте жить дружно   Feb 28 2014, 09:14
- - juvf   stm32L052 падает в HF пытаюсь сделать обработчик ...   Mar 30 2017, 15:27
|- - AHTOXA   Цитата(juvf @ Mar 30 2017, 20:27) Error[O...   Mar 30 2017, 16:10
|- - jcxz   Цитата(juvf @ Mar 30 2017, 17:27) препроц...   Mar 30 2017, 17:03
|- - juvf   Цитата(jcxz @ Mar 30 2017, 22:03) Препроц...   Mar 31 2017, 03:34
- - Obam   А что, на брейкпойнте в точке входа в HF и под JTA...   Mar 31 2017, 07:46
|- - juvf   Цитата(Obam @ Mar 31 2017, 12:46) А что, ...   Mar 31 2017, 08:30
|- - Шаманъ   Цитата(juvf @ Mar 31 2017, 11:30) По мойм...   Mar 31 2017, 09:02
|- - jcxz   Цитата(Шаманъ @ Mar 31 2017, 11:02) Тогда...   Mar 31 2017, 09:13
|- - Forger   Цитата(jcxz @ Mar 31 2017, 12:13) Вот тут...   Mar 31 2017, 09:17
|- - ViKo   Цитата(jcxz @ Mar 31 2017, 12:13) У Corte...   Mar 31 2017, 09:32
||- - jcxz   Цитата(ViKo @ Mar 31 2017, 11:32) А не на...   Mar 31 2017, 09:46
||- - ViKo   Цитата(jcxz @ Mar 31 2017, 12:46) Не обяз...   Mar 31 2017, 10:07
|||- - jcxz   Цитата(ViKo @ Mar 31 2017, 12:07) Этот вы...   Mar 31 2017, 10:17
||- - Шаманъ   Цитата(jcxz @ Mar 31 2017, 12:46) Не обяз...   Mar 31 2017, 10:31
||- - jcxz   Цитата(Шаманъ @ Mar 31 2017, 12:31) Вы пр...   Mar 31 2017, 13:11
|||- - ViKo   Цитата(jcxz @ Mar 31 2017, 16:11) Читайте...   Mar 31 2017, 13:37
|||- - jcxz   Цитата(ViKo @ Mar 31 2017, 15:37) Только ...   Mar 31 2017, 14:34
||- - Forger   Цитата(Шаманъ @ Mar 31 2017, 13:31) Но, п...   Mar 31 2017, 13:39
|- - Шаманъ   Цитата(jcxz @ Mar 31 2017, 12:13) У Corte...   Mar 31 2017, 09:38
- - ViKo   Можно. Только, когда ошибка появляется в рабочем п...   Mar 31 2017, 08:14
|- - Forger   Цитата(ViKo @ Mar 31 2017, 11:14) Можно. ...   Mar 31 2017, 09:08
- - Obam   "…в рабочем приборе, вдалеке от отладчика…...   Mar 31 2017, 08:26
|- - ViKo   Цитата(Obam @ Mar 31 2017, 11:26) "…...   Mar 31 2017, 08:38
- - ViKo   Будем считать, что мне везло, и я всегда попадал и...   Mar 31 2017, 10:34


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

 


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


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