queue writeto and pcreadfrom pointer corruption

FreeRTOS V9.0.0 Eclipse: Mars.2 Release (4.5.2) (GNU Tools for ARM Embedded Processors) 5.2.1 I have a simple queue (int8_t) that is sent data in a task, and removed in a Serial interrupt function. Within 256 characters I can see these ‘writeto’ and ‘pcreadfrom’ pointers get out of step wrt uxMessagesWaiting. I’m sure I’m doing something silly but otherwise stuck. Any pointers (please excuse pun) would be appreciated.

queue writeto and pcreadfrom pointer corruption

Thanks for posting the FreeRTOS and tool versions – unfortunately you didn’t say which chip you are using. If you are using a Cortex-M then the most likely cause will be the priority of the interrupt you are using. Do you have configASSERT() defined and stack overflow protection on? http://www.freertos.org/a00110.html#configASSERT http://www.freertos.org/Stacks-and-stack-overflow-checking.html http://www.freertos.org/RTOS-Cortex-M3-M4.html

queue writeto and pcreadfrom pointer corruption

Apologies, yes that might help!! STM32F103RB

queue writeto and pcreadfrom pointer corruption

Maybe you can show some code that writes to and reads from the queue? Within the interrupt, I suppose you’re using the fromISR() functions?

queue writeto and pcreadfrom pointer corruption

Spot on. One interrupt was a higher priority than defined by configMAXSYSCALLINTERRUPT_PRIORITY Many thanks, all is now working and queues working fine 🙂