lpcware

FreeRTOS hang-up

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by Charles on Tue Jan 25 02:42:35 MST 2011
Hi,

I have a problem where FreeRTOS hangs up in a simple application. I have a serial interrupt collecting data and posting a pointer to the data via xQueueSendFromISR(). The receiving task waits on the receive queue and when there is data it processes it.
My problem seems to occur when the processing of the data takes too long and the Queue fills up, at present it's 8 deep. If I look in the Queue I can see there are 8 items but the receiving task never wakes up, i.e. xQueueReceive() never returns. While I am processing the data I use taskENTER_CRITICAL() and taskEXIT_CRITICAL() to give the processing as much of the CPU time as possible.
The timing is something like this:
Processing time 8ms to 12ms depending on the data.
System tick 1ms.
Data sending from the ISR xQueueSendFromISR() every 10ms.

I am using LPCXpresso 3.4.6 as 3.6 has a problem compiling the code.
FreeRTOS V6.1.0.
CMSISv1p30_LPC13xx.
And the CPU is a LCP1313.

Thanks,
Charles

Outcomes