这个事件入口在arch/blackfin/mach-common/interrupt.s中实现:
/* interrupt routine for core timer - 6 */
ENTRY(_evt_timer)
TIMER_INTERRUPT_ENTRY(EVT_IVTMR_P)
在这里有:
/* For timer interrupts, we need to save IPEND, since the user_mode
macro accesses it to determine where to account time. */
#define TIMER_INTERRUPT_ENTRY(N) /
[--sp] = SYSCFG; /
/
[--sp] = P0; /*orig_p0*/ /
[--sp] = R0; /*orig_r0*/ /
[--sp] = (R7:0,P5:0); /
p0.l = lo(IPEND); /
p0.h = hi(IPEND); /
r1 = [p0]; /
R0 = (N); /
jump __common_int_entry;
而EVT_IVTMR_P则定义为:
#define EVT_IVTMR_P 0x00000006 /* Timer interrupt bit position */
在此之前还有一句说明:
/**************************************************
* EVT registers (ILAT, IMASK, and IPEND).
**************************************************/
可以猜测得到,它就是以位掩码做为参数调用__common_int_entry。