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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> STM32F407VET6. Свистопляска с HardFault-ами, Бесстстемные исключения HardFault
nanorobot
сообщение Jan 5 2016, 17:28
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 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
ViKo
сообщение Jan 5 2016, 18:37
Сообщение #17


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Стек для задач попробуйте увеличить.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jan 5 2016, 19:03
Сообщение #18


Местный
***

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



Цитата(ViKo @ Jan 5 2016, 23:37) *
Стек для задач попробуйте увеличить.


только что методом научного тыка проблема решилась, по крайней мере для данной процедуры. Процедура вызывается из треда(задачи) с приоритетом среднего уровня. В процедуре имеются локальные параметры. Я ко всем описаниям локальных параметров добавил спецификатор static. Проблема ушла. Хороший повод спросить более грамотных товарищей - имееи ли смысл об'являть статическими локальные переменные в процедуре вызываемой из треда(задачи), либо локальные переменные самого треда? По идее выхода из треда(имеется в виду связанной с ним процедуры) нет, значит локальные переменные не разрушаются и без статик.
вероятно Ваш совет к этой теме тоже имеет отношение, сейчас прпробую.
Благодарю Вас за ответ


Цитата(ViKo @ Jan 5 2016, 23:37) *
Стек для задач попробуйте увеличить.

Помогло. Премного благодарен. Успехов в новом году.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 8 2016, 12:40
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Квалификатор static указывает что переменную необходимо разместить глобально. В противном случае эта переменная будет размещена локально (то есть на стеке). Иными словами вы просто чуть уменьшили необходимый для задачи объём стека.
При использовании того или иного квалификатора надо чётко понимать зачем он нужен и как он работает. Здесь не может быть общих рекомендаций.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 8 2016, 12:53
Сообщение #20


Гуру
******

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



Цитата(SasaVitebsk @ Jan 8 2016, 15:40) *
При использовании того или иного квалификатора надо чётко понимать зачем он нужен и как он работает. Здесь не может быть общих рекомендаций.

Зато могут быть танцы с бубном: "static! спасибо, прошло."
smile3046.gif
Go to the top of the page
 
+Quote Post
Quasar
сообщение Jan 10 2016, 09:05
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата(nanorobot @ Jan 5 2016, 22:03) *
Я ко всем описаниям локальных параметров добавил спецификатор static. Проблема ушла. Хороший повод спросить более грамотных товарищей - имееи ли смысл об'являть статическими локальные переменные в процедуре вызываемой из треда(задачи), либо локальные переменные самого треда?


Побороли симптом.

Спецификатором static вы переместили эти переменные из стека туда же, где хранятся глобальные переменные. Возможно стек текущей задачи портился другой задачей. Теперь вы текущую задачу от этого защитили, а задача, которая портила ей стек, портит его другой задаче. :-)
Go to the top of the page
 
+Quote Post

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

 


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


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