From 2b19e5703401f9af3dacda09bf4b8552e5f8832f Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 7 Nov 2023 14:46:32 +1100 Subject: [PATCH] Ensure the GPIO ISR is in IRAM The shared interrupt is flagged as IRAM-capable, so this handler should be too. --- src/drivers/gpios.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/drivers/gpios.cpp b/src/drivers/gpios.cpp index 412c091f..23a98c6f 100644 --- a/src/drivers/gpios.cpp +++ b/src/drivers/gpios.cpp @@ -11,7 +11,9 @@ #include #include "driver/gpio.h" +#include "esp_attr.h" #include "hal/gpio_types.h" + #include "i2c.hpp" namespace drivers { @@ -60,7 +62,7 @@ constexpr std::pair unpack(uint16_t ba) { SemaphoreHandle_t Gpios::sReadPending; -static void interrupt_isr(void* arg) { +IRAM_ATTR static void interrupt_isr(void* arg) { SemaphoreHandle_t sem = reinterpret_cast(arg); xSemaphoreGive(sem); }