diff --git a/lib/CPUs/MIPS/bsp/examples/irq.c b/lib/CPUs/MIPS/bsp/examples/irq.c index bcd8d98..85e1320 100644 --- a/lib/CPUs/MIPS/bsp/examples/irq.c +++ b/lib/CPUs/MIPS/bsp/examples/irq.c @@ -12,9 +12,10 @@ static fp_irq_t g_irq_handler[MAX_NUM_IRQ] = {NULL}; int _irq_dispatch(struct xcptcontext * xcp) { - int i, ip; + int i, ip, cause; - ip = (xcp->cr >> 8) & 0xFF; + cause = xcp->cr & xcp->sr; + ip = (cause >> 8) & 0xFF; for (i=0; i < MAX_NUM_IRQ; i++) {