From 8d533da00ac3914a76a80e4a4b5da6ee9343baa6 Mon Sep 17 00:00:00 2001 From: Emilio Corigliano <emilio.corigliano@skywarder.eu> Date: Sun, 7 Jul 2024 22:35:54 +0200 Subject: [PATCH] [USART] Add check for rescheduling in `IRQhandleInterrupt` --- src/shared/drivers/usart/USART.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/shared/drivers/usart/USART.cpp b/src/shared/drivers/usart/USART.cpp index f5c787d6f..5efb72ea9 100644 --- a/src/shared/drivers/usart/USART.cpp +++ b/src/shared/drivers/usart/USART.cpp @@ -30,6 +30,7 @@ #include "arch/common/drivers/serial.h" #include "filesystem/file_access.h" +#include "kernel/scheduler/scheduler.h" #include "miosix.h" ///< Pointer to serial port classes to let interrupts access the classes @@ -368,6 +369,11 @@ void USART::IRQhandleInterrupt() if (rxWaiting) { rxWaiting->IRQwakeup(); + if (rxWaiting->IRQgetPriority() > + miosix::Thread::IRQgetCurrentThread()->IRQgetPriority()) + { + miosix::Scheduler::IRQfindNextThread(); + } rxWaiting = nullptr; } } -- GitLab