|
Sam7x256 и EMAC data abort ...., может кто сталкивался, как обрабатывать? |
|
|
|
Feb 11 2009, 13:48
|
Участник

Группа: Новичок
Сообщений: 23
Регистрация: 17-11-05
Пользователь №: 10 989

|
Устройство на Sam7x256 в большой сетке периодически уходит в EMAC data abort. Устанавливается бит SVMST_EMAC: Saved EMAC Abort Source, почему это случается и как бороться, может кто сталкивался? Как обрабатывать эту ситуацию ? Если работать с устройством p2p, то работает днями без проблем.
|
|
|
|
|
 |
Ответов
|
Feb 11 2009, 14:18
|
Участник

Группа: Новичок
Сообщений: 23
Регистрация: 17-11-05
Пользователь №: 10 989

|
Цитата(aaarrr @ Feb 11 2009, 18:03)  Потому что DMA EMAC'а из-за ошибки в драйвере неправильно обращается к памяти. В реальной сети это проявляется из-за большей загрузки. Под прием распределенно 200 блоков по 128 байт, битик в статусе приема BNA: Buffer Not Available не устанавливается, т.е. и драйвер и DMA работает. Иногда устанавливается OVR: Receive Overrun, но как с этим бороться не знаю. Потому и прошу помощи - как эту ошибку обрабатывать? Как сбрасывать этот data abort ?
|
|
|
|
|
Feb 11 2009, 14:26
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(serwz @ Feb 11 2009, 17:18)  Под прием распределенно 200 блоков по 128 байт, битик в статусе приема BNA: Buffer Not Available не устанавливается, т.е. и драйвер и DMA работает. Что у Вас в MC_ASR (помимо SVMST_EMAC) и MC_AASR после аборта? Цитата(serwz @ Feb 11 2009, 17:18)  Иногда устанавливается OVR: Receive Overrun, но как с этим бороться не знаю. Потому и прошу помощи - как эту ошибку обрабатывать? Никак не обрабатывать, просто принять к сведению - все сделает железка. Цитата(serwz @ Feb 11 2009, 17:18)  Как сбрасывать этот data abort ? Теоретически из DataAbort'а можно вернуться так же, как из прерывания (в данном случае не нужно повторять инструкцию, так как abort вызвало не ядро), но сам факт его возникновения указывает на ошибку в программе.
|
|
|
|
|
Feb 11 2009, 14:41
|
Участник

Группа: Новичок
Сообщений: 23
Регистрация: 17-11-05
Пользователь №: 10 989

|
Цитата(aaarrr @ Feb 11 2009, 18:26)  Что у Вас в MC_ASR (помимо SVMST_EMAC) и MC_AASR после аборта?
Никак не обрабатывать, просто принять к сведению - все сделает железка.
Теоретически из DataAbort'а можно вернуться так же, как из прерывания (в данном случае не нужно повторять инструкцию, так как abort вызвало не ядро), но сам факт его возникновения указывает на ошибку в программе. MC_ASR = 0х05010А01 MC_AASR - непонятный адрес, каждый раз меняется Я понимаю что OVR: Receive Overrun все делает железка. По поводу DataAbort Написал простейший хандлер, сразу вернуться из прерывания, но прерывание продолжает висеть и зацикливается на самом себе, то есть вызывается снова. Как сбросить эту ситуацию - не знаю? Как сбросить DataAbort?
|
|
|
|
|
Feb 11 2009, 14:45
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
Цитата(serwz @ Feb 11 2009, 17:41)  По поводу DataAbort Написал простейший хандлер, сразу вернуться из прерывания, но прерывание продолжает висеть и зацикливается на самом себе, то есть вызывается снова. Как сбросить эту ситуацию - не знаю? Как сбросить DataAbort? Наверное потомучто EMAC продолжает пытаться записать что-то по ошибочному адресу. Дата аборт сбрасывается просто корректным выходом из обработчика Код SUBS PC,R14_abt,#8
|
|
|
|
Сообщений в этой теме
serwz Sam7x256 и EMAC data abort .... Feb 11 2009, 13:48     serwz Цитата(xelax @ Feb 11 2009, 18:45) Наверн... Feb 11 2009, 14:52      aaarrr Цитата(serwz @ Feb 11 2009, 17:52) sub ... Feb 11 2009, 15:02       serwz Цитата(aaarrr @ Feb 11 2009, 19:02) См. в... Feb 11 2009, 15:52    aaarrr Цитата(serwz @ Feb 11 2009, 17:41) Написа... Feb 11 2009, 14:49 aaarrr Ошибка OVR не связана с возникающим Data Abort.
Ц... Feb 11 2009, 15:57 serwz Цитата(aaarrr @ Feb 11 2009, 19:57) Ошибк... Feb 11 2009, 16:09  aaarrr Цитата(serwz @ Feb 11 2009, 19:09) Ну тог... Feb 11 2009, 16:12  defunct Цитата(serwz @ Feb 11 2009, 18:09) драйве... Feb 12 2009, 00:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|