@Steve Again, I’m talking for the CortexR5 on ZynqUltrascale+ device, but it must be verrrry close to the zynq7000. Take a look at the file port_asm_vector.S in the BSP. You will find this :
_vector_table:
ldr pc,=_boot
ldr pc,=UndefinedHandler
ldr pc, _swi
ldr pc,=PrefetchAbortHandler
ldr pc,=DataAbortHandler
NOP /* Placeholder for address exception vector*/
ldr pc, _irq
ldr pc,=FIQHandler
_irq: .word FreeRTOS_IRQ_Handler
_swi: .word FreeRTOS_SWI_Handler
FreeRTOS_IRQ_Handler and FreeRTOS_SWI_Handler are ASM functions declared in portASM.S. They are not meant to be toyed with inside your code : their addresses are already placed inside the exception vector table for you at compile time. On the other hand, UndefinedHandler, PrefetchAbortHandler, DataAbortHandler and FIQHandler are global variables that hold addresses of C functions meant to be changed by calls to Xil_ExceptioRegisterHandler.