PIC32 -> xQueueReceive hangs second time
Posted by https://www.google.com/accounts on August 15, 2011
I'm using version 7.0.1, I start 9 task with success, I can trigger them with a network package and queues. Now when I start a long running task, when I exit the FSM and come in the main for(;;) with the
xStatus = xQueueReceive(xQueueTransport, &action, portMAX_DELAY);
if ( xStatus == pdPASS)
It hangs in the vListInsert.
for 1. I checked the stack overflow and the code never comes to the hooks.
for 2. I have
#define configMAX_PRIORITIES( ( unsigned portBASE_TYPE ) 6 )
for 3. with the other task I have no problems (don't run for >15sec)
for 4. The first time the task is started, but when it returns it hangs. I have put a stacksize of 4096 for this task and a total_heap_size 56000.
I'm out of ideas to fix this, what can I check to solve this issue?
Previous when I hit this part of freetos, I needed to increase the heap or minimal_stack_size. But nothing seems to fix this issue. I tried to max out these two values without success
RE: PIC32 -> xQueueReceive hangs second time
Posted by Richard
on August 18, 2011
Without being sat at your desk and able to debug this I'm not sure what advice I can offer. However, I'm curious about your statement "for 4. The first time the task is started, but when it returns it hangs" - are you attempting to return from a task? That would definitely cause a crash, there is nothing to return to. If you want to end a task call vTaskDelete( NULL );
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.