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 the xQueueReceiveFromISR function in the ISR.
The problem is in assertion failing in port.c module at lines 683 and 550. I have read the comment in function vPortValidateInterruptPriority in port.c module. Based on that I have firstly inspected value of configMAX_API_CALL_INTERRUPT_PRIORITY constant in the FreeRTOSConfig.h module 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 this article and it seems to me that the priority settings should work. Does anybody have any idea why the assertion still fails?