I have modified the web demo sample to use udp protocol I have 2 task that wait on queues. I have also 1 udp connection. I use also the usb to emulate a joystick.
up to now i been able to do all i want. the usb part is working, the udp also.
BUT, some time, the os hangs. I don’t know exactly why it hangs. I can run my software for 5 10 minutes, and he hangs. I have used the debugger to know where the program is, and he is loked up in this function :
unsigned portLONG ulEMACInputLength( void )
in this part of the function:
/* Walk through the descriptors until we find the last buffer for this
frame. The last buffer will give us the length of the entire frame. */
while( ( xRxDescriptors[ ulIndex ].addr & AT91C_OWNERSHIP_BIT ) && !ulLength )
ulLength = xRxDescriptors[ ulIndex ].U_Status.status & emacRX_LENGTH_FRAME;
/* Increment to the next buffer, wrapping if necessary. */
if( ulIndex >= NB_RX_BUFFERS )
ulIndex = 0;
I never get out from there. I would like to know if somebody have already had this issue.
btw i have test my software with lwip 1.1.0 and also with 1.2.0 and same thing happen.