In zynq7000, the interrupt controller scugic is defined by freertos as a global variable xInterruptController. And in the task scheduling start function, FreeRTOS_ The SetupTickInterrupt function is initialized. Since most tutorials are based on bare metal, I used the interrupt registration function for bare metal before. If it is initialized correctly, there will be no problem. But if you use macros to define XPARs_ XILTIMER_ ENABLED (possibly timer turned on), FreeRTOS_ The SetupTickInterrupt function will not initialize scugic, and I think this should be modified. Otherwise, there will be a situation where the logic has already been initialized and the interrupt function result directly fails to connect. I haven’t found any other places to initialize the interrupt controller either.
Also, there are no examples of interrupts or documentation on freertos interrupts in Vitis’ freertos, and many tutorials are also based on bare metal implementation of interrupts. So it’s still a bit difficult to directly use the freertos interface.