s3c44B0的启动代码44b0init.S的中断分析(2)

;
;HandlerADC                        ;HandlerADC为中断向量表的入口                                                ;
;   sub        sp,sp,#4            ;将sp减少一个字节,使其在堆栈高端留出存储返回地址,因为pc在寄存器组中的            ;
;                                ;的位置大于r0,出栈时装入的是栈的高端的内容                                    ;
;   stmfd   sp!,{r0}            ;保存r0                                                                    ;
;   ldr        r0,=HandleADC        ;装载中断处理函数的指针                                                    ;
;   ldr        r0,[r0]                ;装载中断处理函数的地址                                                    ;
;   str        r0,[sp,#4]            ;将中断处理函数的地址存入刚才预留的位置,r0的上面                                ;
;   ldmfd   sp!,{r0,pc}            ;出栈后,pc指向的既是中断处理函数的地址                                         ;
;                                                                                                       ;
;    INTCON^2 == 0时,vector table使能                                                                        ;
;    发生中断->HandlerADC->HandleADC(pISR_ADC,即:_ISR_STARTADDRESS+0x20);                                    ;                          
;    若要在程序中处理此中断,只要将中断服务函数的指针赋给pISR_ADC,如:pISR_ADC = (int)ADCIsr                      ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

也就是说,在ADC有中断发生时,0x18或0x1C处就是 b HandlerADC ,其他IRQ中断类似:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a307775f8ce4a63827b43770b5298b97.html