extern "C" __irq __arm void irq_handler(void) { void (*interrupt_function)(); unsigned int vector; vector=VICVectAddr; // Get interrupt vector interrupt_function=(void(*)())vector; (*interrupt_function)(); // Call vectored interrupt function VICVectAddr=0; // Clear interrupt in VIC }