]> granicus.if.org Git - esp-idf/commitdiff
esp32: place cross-core interrupt handler into IRAM
authorIvan Grokhotkov <igrokhotkov@gmail.com>
Tue, 10 Jan 2017 16:52:45 +0000 (00:52 +0800)
committerIvan Grokhotkov <igrokhotkov@gmail.com>
Tue, 10 Jan 2017 16:52:45 +0000 (00:52 +0800)
esp_intr_alloc is called with ESP_INTR_FLAG_IRAM, so the ISR should be in IRAM.

components/esp32/crosscore_int.c

index f7ea4f6a7456fdac819de1d21cd6b93344f8c0c8..b58d3d62c5cda8f2d764dbb86a9a67d6f78b1749 100644 (file)
@@ -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;