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

Interrupts on Zynq 7020 under FreeRTOS


I have just started to work with the Zynq 7020 SoC. I have got one FreeRTOS task up and running and now I would like to implement interrupt comming from the PL. I have searched through this forum and I have found that whenever I want to use interrupts along with the FreeRTOS I have to use the xInterruptController instance of GIC defined in the portZynq7000.c module. It make sense to me because also the FreeRTOS needs interrupts for starting its scheduler. Unfortunately I am not sure what should be the next steps necessary to get interrupts under FreeRTOS up and running.

Based on what I have mentioned above I guess that I have to ommit calls of functions XScuGic_LookupConfig and XScuGic_CfgInitialize because both of them have been already called by the FreeRTOS_SetupTickInterrupt function defined in portZynq7000.c module. I have to call only the XScuGic_Connect and the XScuGic_Enable functions to append my interrupt to the existing GIC instance. Is that correct?

If I will continue with comparison between usage of interrupts on bare metal and interrupts usage under FreeRTOS I guess that in the second case I can also ommit the Xil_ExceptioRegisterHandler and Xil_ExceptionEnable function calls. Is that correct?

In case the above mentioned settings is correct I should be able to observe IRQ in spi_status_0 or spi_status_1 register based on IRQ ID. Is that correct?

Thanks in advance for your help.

0 Kudos
0 Replies