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 ...
Search found 358 matches
- Tue Jul 07, 2009 4:50 pm
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
- Tue Jul 07, 2009 2:13 pm
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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 ...
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 ...
- Tue Jul 07, 2009 3:30 am
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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 ...
- Mon Jul 06, 2009 3:15 pm
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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 ...
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 ...
- Sat Jul 04, 2009 5:27 pm
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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.
can you post your source code and binary somewhere? I would be interested in taking a look.
- Sat Jul 04, 2009 2:32 am
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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 ...
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 ...
- Fri Jul 03, 2009 3:29 am
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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.
- Thu Jul 02, 2009 1:42 pm
- Forum: DS/DSi Development
- Topic: receive hangs; was TCP send() performance and eventual hangs
- Replies: 41
- Views: 142607
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 ...
I think I ...