Jump to content

    

TI NDK получение пакетов из Ethernet`а

Добрые люди подскажите как надо получать пакеты от драйвера Ethernet`а, желательно llPacket`ом.

Как отправлять - понятно, там есть не двусмысленная ф-я:

 

void llPacketSend( Uint32 dev, PBM_Handle hPkt )

 

Но как принимать - загадка. Я понимаю что надо работать с пакетным буфером, надо как-то через очереди оформлять, но как это делается - не понятно, и в документациях я ничего не нащел.

 

Посмотрел примерную перечень команд для NE2000 совместимых драйверов - тоже самое, есть явная команда "отправить", но нет команды "принять".

 

Есть абсолютно недокументированная библиотечная ф-я

 

_extern void EtherRxPacket( PBM_Handle hPkt );

 

но нормально с ней работать т.ж. не получается.

 

 

 

 

 

lp1: _llPacketServiceCheck( i );

if( !(i & FLAG_EVENT_ETHERNET) ) goto lp1;

llPacketService();

 

Если мы выходим из цикла значит уже есть пакет?? Можно считать из PBMQ_rx??

Share this post


Link to post
Share on other sites

_llPacketServiceCheck( i ) - устанавливает флаги (FLAG_EVENT_ETHERNET ...) только тогда, когда вызывается переодически (с периодом 100мс), при "polling`е" он эти флаги не устанавливает.

 

Теперь я пакеты получаю, но слишком медленно, а многое даже не получаю.

 

У кого какие мысли по уэтому поводу, может включенный стек мещает, или у процесса слышклм высокий приоритет и он мещает драйверу, HAL`у или что еще??? Неужели никто не работал с NDK.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this