diff --git a/at91_init1.c b/at91_init1.c index fe45736..7011989 100644 --- a/at91_init1.c +++ b/at91_init1.c @@ -66,13 +66,14 @@ void at91_init1(void) AT91S_AIC *aic = AT91C_BASE_AIC; aic->AIC_DCR = AT91C_AIC_DCR_PROT; - /* end-of-interrupt signal */ - aic->AIC_EOICR = ~0; - /* Disable & clear all Interrupts */ aic->AIC_IDCR = ~0; aic->AIC_ICCR = ~0; + /* end-of-interrupt signal */ + while (aic->AIC_ISR != 0x00) + aic->AIC_EOICR = ~0; + /* default Interrupt Handlers just return */ aic->AIC_FVR = (uint32_t)empty_isr; aic->AIC_IVR = (uint32_t)empty_isr;