queue writeto and pcreadfrom pointer corruption

mikezz wrote on Monday, September 26, 2016:

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.

rtel wrote on Monday, September 26, 2016:

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

mikezz wrote on Monday, September 26, 2016:

Apologies, yes that might help!!

STM32F103RB

heinbali01 wrote on Tuesday, September 27, 2016:

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?

mikezz wrote on Sunday, October 02, 2016:

Spot on. One interrupt was a higher priority than defined by configMAX_SYSCALL_INTERRUPT_PRIORITY

Many thanks, all is now working and queues working fine :slight_smile: