|
Some example of indirecting the main vectors, and vector through the AIC
219 00000000 E59FF018 Vectors LDR PC,Reset_Addr 220 00000004 E59FF018 LDR PC,Undef_Addr 221 00000008 E59FF018 LDR PC,SWI_Addr 222 0000000C E59FF018 LDR PC,PAbt_Addr 223 00000010 E59FF018 LDR PC,DAbt_Addr 224 00000014 E1A00000 NOP ; Reserved Vector 225 00000018 ; LDR PC,IRQ_Addr 226 00000018 E51FFF20 LDR PC,[PC,#-0xF20] ; Vector From AIC_IVR 227 0000001C ; LDR PC,FIQ_Addr 228 0000001C E51FFF20 LDR PC,[PC,#-0xF20] ; Vector From AIC_FVR
230 00000020 00000000 Reset_Addr DCD Reset_Handler 231 00000024 00000000 Undef_Addr DCD Undef_Handler 232 00000028 00000000 SWI_Addr DCD SWI_Handler 233 0000002C 00000000 PAbt_Addr DCD PAbt_Handler 234 00000030 00000000 DAbt_Addr DCD DAbt_Handler
So you want 0xE51FFF20U for 0x18/0x1C vectors, it loads the new program counter from the AIC, and off it will go to your interrupt service routine address.
|