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

 
 
> Работа с банками UDP at91sam7s, как отключить второй банк?
Bulat
сообщение Feb 5 2009, 04:49
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 12-10-06
Из: ufa
Пользователь №: 21 241



Размер конечной точки OUT(ep1) 64. Первая посылка приходит в банк 0, я считываю данные и сбрасываю флаг в регистре CSR. Но вторая посылка приходит в банк 1, хотя данные с хоста посылаются не друг за дружкой. Хост посылает 50 байт девайсу, а потом ждет, пока девайс пришлет ему пакет в ответ, я имею в виду не идентификатор пакета NAK или ACK PID, высылаемый UDP автоматически, а пакет с данными, кот девайс высылает в ответ через ep2. Как отключить использование 2-х банков?
Заранее благодарен!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Feb 5 2009, 11:19
Сообщение #2


Гуру
******

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



Двойная буферизация никак не отключается. Зачем это вообще может понадобиться, не понимаю?
Go to the top of the page
 
+Quote Post
Bulat
сообщение Feb 5 2009, 12:17
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 12-10-06
Из: ufa
Пользователь №: 21 241



Цитата(aaarrr @ Feb 5 2009, 16:19) *
Двойная буферизация никак не отключается. Зачем это вообще может понадобиться, не понимаю?

Просто у меня проблема еще не решена, которую я тут описывал. Я проверил с другим работающим драйвером, аналогичные проблемы. Вот я и подумал, что может из-за двойной буферизации так происходит. Поэтому решил с одним банком попробовать поработать, тем более, что мне его достаточно.
Во втором посте этой темы я написал, что у меня происходит, если я не переключаю банки.
Цитата
Код
Код
if(pCDC.currentRcvBank == AT91C_UDP_RX_DATA_BK0)pCDC.currentRcvBank = AT91C_UDP_RX_DATA_BK1;
else  pCDC.currentRcvBank = AT91C_UDP_RX_DATA_BK0;

и pCDC.currentRcvBank у меня всегда равен AT91C_UDP_RX_DATA_BK0. Но в этом случае посылки по 50 байт от хоста у меня принмаются через раз, т.е. одну посылку считываю нормально(приходит то, что нужно), а вместо следающей посылки считываю нули. Т.е. надо переключать банки? А как, тогда с одним банком работать?

Может где-то еще двойная буферизация отключается?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 5 2009, 12:25
Сообщение #4


Гуру
******

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



Цитата(Bulat @ Feb 5 2009, 15:17) *
Может где-то еще двойная буферизация отключается?

Не отключается. Можете воспользоваться для проверки EP3, у которой только один банк.
Go to the top of the page
 
+Quote Post



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

 


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


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