|
STM32 Обработка hard fault exception, Как правильно с ним работать |
|
|
|
 |
Ответов
|
Dec 29 2010, 06:40
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
У меня была как то проблема с таким вылетом - в исходниках FatFs от Чена есть такая функция - mem_cpy(). Весьма вредная, оказывается, так как при установленном флаге WORD_ACCESS она будет производить копирование 32-ух битными словами, а не байтами, безо всякого внимания к выравниванию. Естественно, это быстро приводит к исключению. Дело в том, что большая часть команд Cortex-M3 допускает работу с невыровненными по границе слова данными. Но только не LDM и несколько других. А именно они генерируются при компиляции Ченовской mem_cpy с флагом WORD_ACCESS. Не знаю, почему он вставил эту свою писульку, вместо стандартных библиотечных функций.
|
|
|
|
|
Dec 29 2010, 09:31
|

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

|
Цитата(sonycman @ Dec 29 2010, 14:40)  Не знаю, почему он вставил эту свою писульку, вместо стандартных библиотечных функций.  Я видел кучу самодельных реализаций memcpy(). Раз люди пишут, значит есть причины. Думаю, что основных претензий к библиотечной memcpy() две: она очень большая, и она медленная на маленьких кусках данных. Оба недостатка - следствие огромной кучи начальных проверок в стремлении копировать максимальными блоками. Не всегда это всё нужно. Например, я копирую блоки максимум 20 байт. В этом случае тупое побайтовое(!) копирование может быть быстрее memcpy(). Или наоборот, блоки большие, но я, как программист, гарантирую, что они будут выровнены. Зачем мне тогда начальные проверки memcpy()? (А теперь представьте, что всё, что делает memcpy(), делает сам компилятор, принудительно?!  )
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
Сообщений в этой теме
Serj78 STM32 Обработка hard fault exception Dec 28 2010, 02:19 Harvester Исключение Hard Fault, также как сброс и NMI, явля... Dec 28 2010, 03:36 Serj78 Цитата(Harvester @ Dec 28 2010, 09:36) Та... Dec 28 2010, 12:14  AHTOXA Цитата(Serj78 @ Dec 28 2010, 20:14) Больш... Dec 28 2010, 13:59 zltigo QUOTE (Serj78 @ Dec 28 2010, 08:19) Но ка... Dec 28 2010, 05:03 Dron_Gus Например, Вы можете попытаться обратиться или выпо... Dec 28 2010, 12:46 Serj78 Спасибо за примеры!
Но это если я, образно го... Dec 28 2010, 15:48 AHTOXA Цитата(Serj78 @ Dec 28 2010, 23:48) По ид... Dec 28 2010, 16:56  sonycman Цитата(AHTOXA @ Dec 28 2010, 23:56) Нет, ... Dec 28 2010, 23:50   AHTOXA А если адрес получается извне? Например, читается ... Dec 29 2010, 00:29    sonycman Цитата(AHTOXA @ Dec 29 2010, 08:29) А есл... Dec 29 2010, 02:53     AHTOXA Цитата(sonycman @ Dec 29 2010, 10:53) А в... Dec 29 2010, 03:40   AHTOXA Цитата(sonycman @ Dec 29 2010, 19:58) А н... Dec 29 2010, 13:11    sonycman Цитата(AHTOXA @ Dec 29 2010, 21:11) Ха... Dec 29 2010, 14:37     igorsk Цитата(sonycman @ Dec 29 2010, 16:37) И о... Apr 7 2011, 21:45 pan_oleg День добрый.
Нужна помощ.
Код для STM32F101BT6 нап... Jan 5 2011, 11:31 Haamu Цитата(pan_oleg @ Jan 5 2011, 15:31) Код ... Apr 11 2014, 02:30  Сергей Борщ Цитата(Haamu @ Apr 11 2014, 04:30) Подска... Apr 11 2014, 03:09 Атмег Цитата(pan_oleg @ Jan 5 2011, 14:31) День... Apr 5 2011, 16:48 KnightIgor Цитата(Атмег @ Apr 5 2011, 18:48) При изм... Apr 6 2011, 12:32 Атмег Цитата(KnightIgor @ Apr 6 2011, 15:32) Эт... Apr 6 2011, 17:10 Атмег Кажется, причины ясны, проблема не в моем коде. У ... Apr 7 2011, 17:45 aaarrr Цитата(Атмег @ Apr 7 2011, 21:45) Кажется... Apr 7 2011, 22:11 Атмег Цитата(aaarrr @ Apr 8 2011, 01:11) Можно ... Apr 8 2011, 07:53 aaarrr Цитата(Атмег @ Apr 8 2011, 11:53) PLL нас... Apr 8 2011, 08:49 Атмег Цитата(aaarrr @ Apr 8 2011, 11:49) А FMR?... Apr 8 2011, 09:48 aaarrr Цитата(Атмег @ Apr 8 2011, 13:48) код из ... Apr 8 2011, 09:54 Атмег Это я взял как есть из примера. Как будет очередно... Apr 8 2011, 10:23 aaarrr Цитата(Атмег @ Apr 8 2011, 14:23) Запись ... Apr 8 2011, 10:28 Атмег Цитата(aaarrr @ Apr 8 2011, 14:28) В том-... Apr 8 2011, 10:57 aaarrr Если программа стартует из флеш, то загрузчик не з... Apr 8 2011, 11:06 Атмег Цитата(aaarrr @ Apr 8 2011, 15:06) Если п... Apr 8 2011, 15:39 aaarrr Цитата(Атмег @ Apr 8 2011, 19:39) Имел в ... Apr 8 2011, 16:13 Атмег Цитата(aaarrr @ Apr 8 2011, 20:13) Процес... Apr 8 2011, 17:28 aaarrr Цитата(Атмег @ Apr 8 2011, 21:28) Отличае... Apr 8 2011, 20:29 Атмег Да, вы были правы, действительно дело оказалось EE... Apr 12 2011, 22:02 aaarrr Цитата(Атмег @ Apr 13 2011, 02:02) Но Атм... Apr 12 2011, 22:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|