summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
authorfenghuijie <[email protected]>2021-07-05 14:06:32 +0800
committerfenghuijie <[email protected]>2021-07-05 14:06:32 +0800
commiteb79a8a244d3d90665df0a5f3289f90bd1f9aeb1 (patch)
treec9b40bd75f393aac5f6f6ff8a4f44bba5b6bb882 /libcpu
parent05bb1a50b0d26b7c60c82ccb4ff8a66a501feac3 (diff)
修改irq handle接口rt_hw_trap_irq,支持核间IPI中断处理
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/arm/cortex-a/trap.c6
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)