diff -urN ecos.orig/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c --- ecos.orig/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c 2006-05-05 19:42:04.000000000 +0300 +++ ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c 2006-05-06 00:48:38.000000000 +0300 @@ -249,6 +249,12 @@ void hal_interrupt_acknowledge(int vector) { + if (vector <= CYGNUM_HAL_INTERRUPT_EINT3 && + vector >= CYGNUM_HAL_INTERRUPT_EINT0) { + vector = 1 << (vector - CYGNUM_HAL_INTERRUPT_EINT0); + HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_SCB_BASE + + CYGARC_HAL_LPC2XXX_REG_EXTINT, vector); + } HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE + CYGARC_HAL_LPC2XXX_REG_VICVECTADDR, 0); }