Search found 358 matches

by elhobbs
Tue Jul 07, 2009 4:50 pm
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

Wifi_Update on the arm9 does modify WifiData->rxbufIn while interrupts are enabled - which I suspect could lead to processing the same packet twice (maybe?). void Wifi_Timer(int num_ms) { Wifi_Update(); sgIP_Timer(num_ms); } does Wifi_Timer need to call Wifi_Update anymore. I think this was needed b...
by elhobbs
Tue Jul 07, 2009 2:13 pm
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

Didn't notice the protocol is unsigned short* until now - a pointer to protocol settings then? the cast for the protocol is for the buffer pointer not the value at index 6. the protocol is encoded as 2 bytes at offset 12 and 13 in the packet - so casting the buffer as an unsigned short allows readi...
by elhobbs
Tue Jul 07, 2009 3:30 am
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

I suspect there may be an issue with the libnds fifo system. in particular fifoInternalRecvInterrupt. this function does not backup and restore REG_IME. instead it enables and disables it by writing 1 and 0 repectively - regardless of the current state. I think that if a packet is received while fi...
by elhobbs
Mon Jul 06, 2009 3:15 pm
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

while(tmb->next) tmb=tmb->next; dswifi is maintaining a linked list of packets that have been received. this code is trying to find the end of the list - which is where new packets are added. it would appear that this list is becoming corrupt when packets are being received very close together. dsw...
by elhobbs
Sat Jul 04, 2009 5:27 pm
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

it is to support hardware exceptions - accessing invalid memory addresses, stack overflow, etc.

can you post your source code and binary somewhere? I would be interested in taking a look.
by elhobbs
Sat Jul 04, 2009 2:32 am
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

do you have an exception handler in place? this will install the default one: defaultExceptionHandler(); it uses iprintf to display. make sure that you are using the latest version of libnds and dswifi. when libnds switched ipc to use fifo it introduced a lot of instability to the dswifi module. it ...
by elhobbs
Fri Jul 03, 2009 3:29 am
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

if you are able to utilize the full 2 mbit bandwidth than this is only ~4 packets a frame. so, probably 2-3 packets per frame is going to be the best you can hope for - most likely less if there is a lot of other network traffic.
by elhobbs
Thu Jul 02, 2009 1:42 pm
Forum: DS/DSi Development
Topic: receive hangs; was TCP send() performance and eventual hangs
Replies: 41
Views: 124308

Re: TCP send() performance and eventual hangs

I suspect when send returns less than 1420 that the internal send buffers are full and that you are exceeding the transmission rate on the ds. it is only 2Mbit/s - though I think people typically see 1Mbit/s at best. you could try waiting a frame or two if the send is smaller than 1420. I think I re...