㈠首先中断来了,芯片会把程序指针指到这
非向量中断模式
b HandlerIRQ
b HandlerFIQ
中断向量模式:
ldr pc,=HandlerEINT0 ;mGA H/W interrupt vector table
ldr pc,=HandlerEINT1 ;
ldr pc,=HandlerEINT2 ;
ldr pc,=HandlerEINT3 ;
ldr pc,=HandlerEINT4567 ;
ldr pc,=HandlerTICK ;mGA
b .
b .
ldr pc,=HandlerZDMA0 ;mGB
ldr pc,=HandlerZDMA1 ;
ldr pc,=HandlerBDMA0 ;
等等
(注:这只说向量中断模式)
㈡以HandlerTIMER5为例
执行这个函数宏HandlerTIMER5 HANDLER HandleTIMER5
HANDLER 宏的作用是把ip指针指到HandleTIMER5处,HandleTIMER5是flash中的一个地址,有着一句分配HandleTIMER5 # 4,基址这样定义 ^ _ISR_STARTADDRESS
㈢这个地址中存的应该就是中断函数的地址。到c语言中找这个地址,这一句就是
#define pISR_TIMER5 (*(unsigned *)(_ISR_STARTADDRESS+0x40))
㈣pISR_TIMER5 看到它就像看到希望一样, 把我们的中断函数赋给它就大功告成了
pISR_TIMER5=(U32)Timer5Int;