diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-12-21 15:16:48 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2024-01-15 10:33:05 +0100 |
commit | cf01329e244fa9d96a42d0385d577225718e54aa (patch) | |
tree | 6002a30e008ec0d7018721861efd03632beb5c30 /bsps/arm | |
parent | bsp/tms570: Implement interrupt is enabled/pending (diff) | |
download | rtems-cf01329e244fa9d96a42d0385d577225718e54aa.tar.bz2 |
bsp/tms570: Avoid spurious interrupts
Update #4982.
Diffstat (limited to 'bsps/arm')
-rw-r--r-- | bsps/arm/tms570/irq/irq.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bsps/arm/tms570/irq/irq.c b/bsps/arm/tms570/irq/irq.c index 684e3d47fb..9a80e0e3d2 100644 --- a/bsps/arm/tms570/irq/irq.c +++ b/bsps/arm/tms570/irq/irq.c @@ -166,9 +166,17 @@ rtems_status_code tms570_irq_get_priority( */ void bsp_interrupt_dispatch(void) { - rtems_vector_number vector = TMS570_VIM.IRQINDEX-1; + while (true) { + uint32_t irqindex; - bsp_interrupt_handler_dispatch(vector); + irqindex = TMS570_VIM.IRQINDEX; + + if (irqindex == 0) { + return; + } + + bsp_interrupt_handler_dispatch(irqindex - 1); + } } static bool can_disable(rtems_vector_number vector) |