Problems with FreeRTOS queue usage from interrupt service routine on Zynq 7000 platform
I have been developing FreeRTOS based application on Zynq 7000 hardware platform. My application software is divided into one interrupt service routine (ISR) and one FreeRTOS task. I have attempted to send bytes from the task into the ISR via FreeRTOS queue. Unfortunately I have encountered a problem in case I have called thexQueueReceiveFromISRfunction in the ISR.
The problem is in assertion failing inport.cmodule at lines 683 and 550. I have read the comment in functionvPortValidateInterruptPriorityinport.cmodule. Based on that I have firstly inspected value of configMAX_API_CALL_INTERRUPT_PRIORITY constant in theFreeRTOSConfig.hmodule and I have found that it is set to 18. According to the comment I have lowered priority of my interrupt request from 0 (i.e. highest priority) to 19. Despite this modification the above mentioned assertion still fails.
I have also read thisarticleand it seems to me that the priority settings should work. Does anybody have any idea why the assertion still fails?