diff options
| author | fenghuijie <[email protected]> | 2021-07-05 14:06:32 +0800 |
|---|---|---|
| committer | fenghuijie <[email protected]> | 2021-07-05 14:06:32 +0800 |
| commit | eb79a8a244d3d90665df0a5f3289f90bd1f9aeb1 (patch) | |
| tree | c9b40bd75f393aac5f6f6ff8a4f44bba5b6bb882 | |
| parent | 05bb1a50b0d26b7c60c82ccb4ff8a66a501feac3 (diff) | |
修改irq handle接口rt_hw_trap_irq,支持核间IPI中断处理
| -rw-r--r-- | libcpu/arm/cortex-a/trap.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libcpu/arm/cortex-a/trap.c b/libcpu/arm/cortex-a/trap.c index 3faa136677..f61b89871d 100644 --- a/libcpu/arm/cortex-a/trap.c +++ b/libcpu/arm/cortex-a/trap.c @@ -155,12 +155,14 @@ void rt_hw_trap_resv(struct rt_hw_exp_stack *regs) void rt_hw_trap_irq(void) { void *param; + int int_ack; int ir; rt_isr_handler_t isr_func; extern struct rt_irq_desc isr_table[]; - ir = rt_hw_interrupt_get_irq(); + int_ack = rt_hw_interrupt_get_irq(); + ir = int_ack & GIC_ACK_INTID_MASK; if (ir == 1023) { /* Spurious interrupt */ @@ -181,7 +183,7 @@ void rt_hw_trap_irq(void) } /* end of interrupt */ - rt_hw_interrupt_ack(ir); + rt_hw_interrupt_ack(int_ack); } void rt_hw_trap_fiq(void) |
