From 5aafa80fda65a70ced118d7b71457e6adb7a0484 Mon Sep 17 00:00:00 2001 From: Autofix <209348056+Autofix@users.noreply.github.com> Date: Thu, 19 Feb 2026 17:10:35 +1100 Subject: [PATCH] Increase priority of UART interrupt for ESP32/S2/S3 targets only to Priority3 as it was becoming blocked when reading the buffered uart. --- src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index cab3ffb..68c0b71 100644 --- a/src/main.rs +++ b/src/main.rs @@ -66,13 +66,14 @@ async fn main(spawner: Spawner) -> ! { .unwrap(); // Set up software buffered UART to run in a higher priority InterruptExecutor + // Must be higher priority than esp_rtos (Priority1) let uart_buf = UART_BUF.init_with(BufferedUart::new); let software_interrupts = SoftwareInterruptControl::new(peripherals.SW_INTERRUPT); let interrupt_executor = INT_EXECUTOR.init_with(|| InterruptExecutor::new(software_interrupts.software_interrupt0)); cfg_if::cfg_if! { if #[cfg(any(feature = "esp32", feature = "esp32s2", feature = "esp32s3"))] { - let interrupt_spawner = interrupt_executor.start(Priority::Priority1); + let interrupt_spawner = interrupt_executor.start(Priority::Priority3); } else { let interrupt_spawner = interrupt_executor.start(Priority::Priority10); }