|
STM32F417 вылетает в Hard Fault, NOCP |
|
|
|
Jul 7 2014, 14:42
|

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

|
Приветствую. Есть самодельная плата на STM32F417 c Ethernet, LwIP и FreeRTOS. Она периодически улетает в Hard Fault, дамп привожу ниже. Улетает она с причиной NOCP. Цитата No coprocessor Usage Fault. The processor does not support coprocessor instructions: 0 = no Usage Fault caused by attempting to access a coprocessor 1 = the processor has attempted to access a coprocessor that does not exist. Сначала думал FPU, но он включен, и вроде как исправно работает, на камне крутятся два фильтра, использующие FPU. Также, судя по дампу, вылет случается не на операции с плавающей точкой, а на операции UXTAH (см. приложенные картинки). Есть подозрения, что проблема аппаратная, так как, на втором экземпляре слёт случается сильно реже, но все равно случается. Но мне не ясно, почему именно на это инструкции вылетает исключение? Может кто посоветует направление, где искать?
|
|
|
|
|
 |
Ответов
|
Oct 4 2014, 07:02
|

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

|
Цитата Сталкивался с подобным. Помогло отключение, щас точно не помню, какого то буфера в камне. Вроде бы префеч ( ну или как его там ). Переразвел немного железку, увеличил стеки, перетащил работу FPU в один поток. Все равно продолжились вылеты. То NOCP, то Undefened Instruction. Отключил префтеч. буфер, HardFault'ы как рукой сняло.
|
|
|
|
|
Oct 4 2014, 13:16
|

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

|
Цитата(jcxz @ Oct 4 2014, 12:32)  Это какой именно prefetch отключили? Интересно. И действительно все fault-ы после этого прекратились?
PS: У Вас кстати LwIP плохо портирован (или вообще не портирован) на Cortex. Видно по куску кода в самом первом посте (SWAP_BYTES_IN_WORD). Отключил FLASH_ACR_PRFTEN. После этого, пока не было ни одного Hard_Fault. Я как-то и падения производительности не заметил. Сейчас 5 фильтров IIR использующих FPU крутятся и 50 частот обрабатывается алгоритмом Герцеля + Speex. Хватает еще и на сеть вполне. По поводу оптимизации LwIP, это тот который в STM32Cube идет. То есть, я его ни как не правил, наверное его ни кто не оптимизировал под Cortex.
|
|
|
|
|
Oct 4 2014, 20:01
|

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

|
Цитата(Quasar @ Oct 4 2014, 19:16)  Отключил FLASH_ACR_PRFTEN. У вас наверное ревизия A. Там не работает префетч, это описано в еррате. В ревизии Z это исправили. Я использовал вот такой код, чтобы включать префетч только в ревизии Z: Код static const uint32_t REVISION_Z = 0x10010000; FLASH->ACR = 0 | ((DBGMCU->IDCODE & DBGMCU_IDCODE_REV_ID) == REVISION_Z ? FLASH_ACR_PRFTEN : 0) | FLASH_ACR_ICEN | FLASH_ACR_DCEN | FLASH_ACR_LATENCY_5WS ;
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
Сообщений в этой теме
Quasar STM32F417 вылетает в Hard Fault Jul 7 2014, 14:42 vlad_new Сталкивался с подобным. Помогло отключение, щас то... Jul 7 2014, 16:16 kolobok0 Цитата(Quasar @ Jul 7 2014, 18:42) Есть с... Jul 8 2014, 05:45 Quasar Цитата(kolobok0 @ Jul 8 2014, 09:45) приб... Jul 8 2014, 09:59  kolobok0 Цитата(Quasar @ Jul 8 2014, 13:59) ...Код... Jul 8 2014, 22:12   Quasar Цитата(kolobok0 @ Jul 9 2014, 02:12) загл... Jul 9 2014, 10:04    kolobok0 Цитата(Quasar @ Jul 9 2014, 14:04) Я чест... Jul 10 2014, 06:11 kan35 Возможно у вас в параллельных потоках используется... Jul 8 2014, 16:12 Quasar Цитата(kan35 @ Jul 8 2014, 20:12) Возможн... Jul 9 2014, 11:50 Golikov A. по идее в кортекс м3-м4 при в ходе в прерывание в ... Jul 9 2014, 10:22 Golikov A. А конвейеры учтены? Там есть же какие-то барьеры н... Jul 9 2014, 13:25 Quasar Цитата(Golikov A. @ Jul 9 2014, 17:25) А ... Jul 9 2014, 14:50 Golikov A. Вот фиг знает кем. Есть мнение что программистом, ... Jul 9 2014, 18:59 adnega Очень важно во FreeRTOS правильно указывать приори... Jul 10 2014, 06:22    scifi Цитата(AHTOXA @ Oct 4 2014, 23:01) Я испо... Jan 26 2016, 18:07     ataradov QUOTE (scifi @ Jan 26 2016, 12:07) А заче... Jan 26 2016, 19:07      scifi Цитата(ataradov @ Jan 26 2016, 22:07) Что... Jan 27 2016, 07:17       ataradov QUOTE (scifi @ Jan 27 2016, 01:17) Даже н... Jan 27 2016, 07:22 SasaVitebsk Цитата(Quasar @ Oct 4 2014, 10:02) Перера... Jan 27 2016, 06:16  Quasar Цитата(SasaVitebsk @ Jan 27 2016, 09:16) ... Feb 2 2016, 17:35 sidy Скорее всего отключили буфер предварительной выбо... Oct 4 2014, 11:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|