From 833102cbf325c1a50b8a6a1a6f4ccd6af45bdf65 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Wed, 11 Jan 2017 00:52:45 +0800 Subject: [PATCH] esp32: place cross-core interrupt handler into IRAM esp_intr_alloc is called with ESP_INTR_FLAG_IRAM, so the ISR should be in IRAM. --- components/esp32/crosscore_int.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/esp32/crosscore_int.c b/components/esp32/crosscore_int.c index f7ea4f6a7..b58d3d62c 100644 --- a/components/esp32/crosscore_int.c +++ b/components/esp32/crosscore_int.c @@ -44,7 +44,7 @@ static volatile uint32_t reason[ portNUM_PROCESSORS ]; ToDo: There is a small chance the CPU already has yielded when this ISR is serviced. In that case, it's running the intended task but the ISR will cause it to switch _away_ from it. portYIELD_FROM_ISR will probably just schedule the task again, but have to check that. */ -static void esp_crosscore_isr(void *arg) { +static void IRAM_ATTR esp_crosscore_isr(void *arg) { uint32_t myReasonVal; //A pointer to the correct reason array item is passed to this ISR. volatile uint32_t *myReason=arg;