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

 
 
> Неожиданная остановка приема по Ethernet, EMAC AT91SAM7X256
Yarvi
сообщение Sep 7 2007, 12:08
Сообщение #1





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



Столкнулся со следующей проблемой.

Принимаю данные по Ethernet, по приему срабатывает прерывание.
Обрабатываю полученные данные и затем сбрасываю OWNERSHIP_BIT в каждом буфере, где размещался обработанный пакет, и выхожу из прерывания.

Пакеты идут потоком 40 пакетов/сек.
Так вот проблема - если для приема я использую 8 буферов по 128 байт, все работает как надо.
Если же увеличиваю количество буферов - 16, 32, 64, то прием достаточно быстро прекращается (1-3 сек).
Судя по регистру EMAC_RRE, пакеты принимаются, но не копируются в отведенную для них память и соответственно не вызывается прерывание.

Если кто подскажет в чем может быть дело, заранее большое спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Alexander___
сообщение Sep 10 2007, 09:41
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 30-05-07
Пользователь №: 28 039



Цитата(Yarvi @ Sep 7 2007, 18:08) *
Столкнулся со следующей проблемой.

Принимаю данные по Ethernet, по приему срабатывает прерывание.
Обрабатываю полученные данные и затем сбрасываю OWNERSHIP_BIT в каждом буфере, где размещался обработанный пакет, и выхожу из прерывания.

Пакеты идут потоком 40 пакетов/сек.
Так вот проблема - если для приема я использую 8 буферов по 128 байт, все работает как надо.
Если же увеличиваю количество буферов - 16, 32, 64, то прием достаточно быстро прекращается (1-3 сек).
Судя по регистру EMAC_RRE, пакеты принимаются, но не копируются в отведенную для них память и соответственно не вызывается прерывание.

Если кто подскажет в чем может быть дело, заранее большое спасибо.


А в EMAC_RSR какие при этом флаги получаются?
Go to the top of the page
 
+Quote Post
Yarvi
сообщение Sep 13 2007, 11:19
Сообщение #3





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



Проблема локализовалась в некоторую другую, а именно:

при приеме в случайный момент времени в устройстве происходит сброс, пропадает соединение с компом по сети. Далее программа исполняется с начала, однако почему то не перестают вызываться прерывания и от таймера и прерывания по приему.

то ессть два вопроса:

1. Почему может происходить сброс во время приема?
2. Почему исполняясь заново программа перестает уходить на прерывания?

Буду очень благодарен, если вдруг у кого то есть какие то мысли.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 13 2007, 11:43
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Yarvi @ Sep 13 2007, 15:19) *
2. Почему исполняясь заново программа перестает уходить на прерывания?

Такое может наблюдаться, если срабатывает WatchDog и установлен бит WDRPROC в WDT_MR,
или программа просто улетает по нулевому адресу из прерывания - AIC заклинит.
Go to the top of the page
 
+Quote Post
_dem
сообщение Sep 13 2007, 15:16
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 2-02-07
Из: CN, Ukraine
Пользователь №: 24 970



1. Почему может происходить сброс во время приема?

Кроме того, причин может быть много - очень часто data abort или (если используется OS) - выход за пределы стека задачи
Go to the top of the page
 
+Quote Post
Usama79
сообщение Oct 6 2007, 09:47
Сообщение #6





Группа: Новичок
Сообщений: 1
Регистрация: 29-04-07
Пользователь №: 27 407



ARM9200 help.gif
Проблема с приемом пакетов Ethernet :
Для приема есть 4 буфера. После приема 1-го пакета все нормально - регистр RBQP указывает на адрес второго буфера в списке. После приема 2-го пакета RBQP почему-то не переходит на 3-й буфер а перепрыгивает опять на первый. Биты Wrap в списке указателей сброшены, кроме (понятно) 4-го
Go to the top of the page
 
+Quote Post

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

 


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


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