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

 
 
 
Reply to this topicStart new topic
> TX буффер в W3100A, не могу передать более 8кБ
LeoLabs
сообщение Oct 30 2006, 05:47
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 5-03-05
Пользователь №: 3 082



Передаю данные от девайса к компу, но возникают проблемы при передаче более 8кБ (размер буффера).

Код
p=GetP(WN_C0_TA_PR);//&0x1fff;
i=0;
while(cnt--)
{
  WN_TX_BUFF[p]=buff[i++];
  p=(p+1)&0x1fff;//0x1fff
}
SetP(WN_C0_TW_PR,(unsigned int)p);
WNCmd(WC_SEND);


т.е. такое впечатление что в жабе буффер аппаратно не "закольцован". Может это баг?
Go to the top of the page
 
+Quote Post
KRS
сообщение Nov 1 2006, 09:56
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(LeoLabs @ Oct 30 2006, 08:47) *
Передаю данные от девайса к компу, но возникают проблемы при передаче более 8кБ (размер буффера).

Код
p=GetP(WN_C0_TA_PR);//&0x1fff;
i=0;
while(cnt--)
{
  WN_TX_BUFF[p]=buff[i++];
  p=(p+1)&0x1fff;//0x1fff
}
SetP(WN_C0_TW_PR,(unsigned int)p);
WNCmd(WC_SEND);


т.е. такое впечатление что в жабе буффер аппаратно не "закольцован". Может это баг?


Буфер закольцован!
но там интерфейс кривой
так нельзя записывать адрес перед отправкой!
SetP(WN_C0_TW_PR,(unsigned int)p);

надо записывать исходный + длина
Код
p=GetP(WN_C0_TA_PR);//&0x1fff;
last=p;
len=cnt;

.....

SetP(WN_C0_TW_PR,last+len);


т.е если вы перешли через границу писать то надо с адреса 0 и т.д.
а вот в указатель записывать уже значение больше 8192....
покрайней мере так в 3150
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 03:58
Рейтинг@Mail.ru


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