Mercurial > flash_v2
changeset 1335:564441705fa6
2003-10-23 Thomas Koeller <thomas.koeller@baslerweb.com>
* src/at91_misc.c: Fixed recognition of spurious
interrupts.
| author | nickg |
|---|---|
| date | Tue, 28 Oct 2003 18:09:07 +0000 |
| parents | 8758da1a0278 |
| children | 4abdcd2f65a9 |
| files | packages/hal/arm/at91/var/current/ChangeLog packages/hal/arm/at91/var/current/src/at91_misc.c |
| diffstat | 2 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/arm/at91/var/current/ChangeLog +++ b/packages/hal/arm/at91/var/current/ChangeLog @@ -1,3 +1,8 @@ +2003-10-23 Thomas Koeller <thomas.koeller@baslerweb.com> + + * src/at91_misc.c: Fixed recognition of spurious + interrupts. + 2003-08-21 Thomas Koeller <thomas.koeller@baslerweb.com> * include/var_io.h:
--- a/packages/hal/arm/at91/var/current/src/at91_misc.c +++ b/packages/hal/arm/at91/var/current/src/at91_misc.c @@ -184,6 +184,10 @@ int hal_IRQ_handler(void) HAL_READ_UINT32(AT91_AIC+AT91_AIC_IVR, ivr); HAL_READ_UINT32(AT91_AIC+AT91_AIC_ISR, irq_num); + + // No valid interrrupt source, treat as spurious interrupt + if (irq_num < CYGNUM_HAL_ISR_MIN || irq_num > CYGNUM_HAL_ISR_MAX) + irq_num = CYGNUM_HAL_INTERRUPT_NONE; return irq_num; } @@ -210,9 +214,8 @@ void hal_interrupt_unmask(int vector) void hal_interrupt_acknowledge(int vector) { - CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX && - vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector"); - + // No check for valid vector here! Spurious interrupts + // must be acknowledged, too. HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_EOI, 0xFFFFFFFF); }
