From 624737a792a8c000eca25739fb3c30e257cae2c0 Mon Sep 17 00:00:00 2001 From: shaojinchun Date: Thu, 24 Mar 2022 16:32:30 +0800 Subject: [PATCH] fix cortex-a irq number --- libcpu/arm/cortex-a/trap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libcpu/arm/cortex-a/trap.c b/libcpu/arm/cortex-a/trap.c index 91ae1d6163..e74d7966c5 100644 --- a/libcpu/arm/cortex-a/trap.c +++ b/libcpu/arm/cortex-a/trap.c @@ -298,12 +298,13 @@ void rt_hw_trap_irq(void) } #else void *param; - int ir; + int ir, ir_real; rt_isr_handler_t isr_func; extern struct rt_irq_desc isr_table[]; ir = rt_hw_interrupt_get_irq(); + ir_real = ir & 0x3ff; if (ir == 1023) { /* Spurious interrupt */ @@ -311,14 +312,14 @@ void rt_hw_trap_irq(void) } /* get interrupt service routine */ - isr_func = isr_table[ir].handler; + isr_func = isr_table[ir_real].handler; #ifdef RT_USING_INTERRUPT_INFO - isr_table[ir].counter++; + isr_table[ir_real].counter++; #endif if (isr_func) { /* Interrupt for myself. */ - param = isr_table[ir].param; + param = isr_table[ir_real].param; /* turn to interrupt service routine */ isr_func(ir, param); } -- Gitee