summaryrefslogtreecommitdiffstats
path: root/bsps/arm
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-12-21 15:16:48 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2024-01-15 10:33:05 +0100
commitcf01329e244fa9d96a42d0385d577225718e54aa (patch)
tree6002a30e008ec0d7018721861efd03632beb5c30 /bsps/arm
parentbsp/tms570: Implement interrupt is enabled/pending (diff)
downloadrtems-cf01329e244fa9d96a42d0385d577225718e54aa.tar.bz2
bsp/tms570: Avoid spurious interrupts
Update #4982.
Diffstat (limited to 'bsps/arm')
-rw-r--r--bsps/arm/tms570/irq/irq.c12
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)