I have a thread (with the highest priority of all my threads) filling a queue.
When it’s full I would like it to block upto 100ms waiting for my interrupt routine to receive data
The interrupt routine receives the data:
if (xQueueReceiveFromISR(xRFOutRaw, &data, &xHigherPriorityTaskWoken) != pdPASS )
Note: The xHigherPriorityTaskWoken is always false, even when the QueueSend is blocking. How come? When the data is received, I would like my thread waiting to complete the send to unblock imediately, but it doesn’t.
I’m running on a STM32. I’ve checked the intterrupt priorities and they are ok (above (configMAX_SYSCALL_INTERRUPT_PRIORITY >> 4), and NVIC_PriorityGroup_4 is set), there must be somthing other than that causing my problem.
Is it ok to full upp a queue like I do here and expect it to unblock when there is space available in the queue? Do I have to enably something in the FreeRTOSconfig to make it work?