void __init timer_irq_inits() { /* timer_irq_init(IRQ_TIMER0_VIC, IRQ_TIMER0); timer_irq_init(IRQ_TIMER1_VIC, IRQ_TIMER1); timer_irq_init(IRQ_TIMER2_VIC, IRQ_TIMER2); timer_irq_init(IRQ_TIMER3_VIC, IRQ_TIMER3); */ timer_irq_init(IRQ_TIMER4_VIC, IRQ_TIMER4); }
// {{{ 中断初始化 void irq_init(void) void irq_init(void) { // 将协处理器P15的寄存器C1中的bit24置1,该比特位为VIC使能位 __asm__( "mrc p15, 0, r0, c1, c0, 0\n" "orr r0, r0, #(1 << 24)\n" "mcr p15, 0, r0, c1, c0, 0" ); // 关闭所有中断 VIC0INTENCLEAR = 0xffffffff; // 清空VICxADDR VIC0ADDRESS = 0; // 中断挂起标志位清零, Each bit is cleared by writing "1"; EINT0PEND = 0xffffffff; #ifdef IRQ_KEY // 开启外部按键中断 key_irq_init(); #endif #ifdef IRQ_TIMER // 开启定时器中断 timer_irq_init(); #endif }