Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎03-16-2020

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 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?

0 Kudos
0 Replies