PIC32MX lwIP + FreeRTOS port again

I received and send frames now which is a success. There is a problem though in the Tctcpip thread. It appears to be FreeRTOS related so I ask here. Quite complex to explain the problem byt here we go. In the tcpip thread the code waits for a frame. This is done with sys_mbox_fetch(mbox, (void *)&msg); which is defined in the sys_arch.c  When called I get an exception. I have checked that the mbox has been initialized and can trace the fault to a list iteration in vListInsert (called in vTaskPlaceOnEventList) for( pxIterator = ( xListItem * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext )         {             /* There is nothing to do here, we are just iterating to the             wanted insertion position. */         } As I can see the list pointers are messed up as this point giving the exception. I have not been able to figure out why yet. Call stack is - tcpip_thread - sys_mbox_fetch - sys_arch_mbox_fetch - xQueueGenericReceive - vTaskPlaceOnEventList Any hints appreciated. Cheers /Ake

PIC32MX lwIP + FreeRTOS port again

Most likely cause of this is stack overflow – the lwIP threads can use quite a bit of stack, especially when using standard GCC C library functions such as sprintf() [you can use cut down versions that are more stack friendly on embedded systems]. Check the task that implements your lwIP functionality AND any task that is created using sys_thread_new() within sys_arch.c.  Put a break point in sys_thread_new() to ensure you catch each time it is called. Regards.

PIC32MX lwIP + FreeRTOS port again

Hi Richard, you are right of course. Thanks a lot. /Ake