]> granicus.if.org Git - esp-idf/commitdiff
FreeRTOS: esp_crosscore_int_send_yield() should be in IRAM
authorAngus Gratton <angus@espressif.com>
Thu, 26 Jan 2017 07:31:15 +0000 (18:31 +1100)
committerAngus Gratton <angus@espressif.com>
Thu, 26 Jan 2017 07:53:02 +0000 (18:53 +1100)
Possible for xQueueGenericSendFromISR -> xTaskRemoveFromEventQueueList
-> taskYIELD_OTHER_CORE code path to occur while cache is off.

components/esp32/crosscore_int.c

index 1e131eeef714d8d657f6015ff6bba5b440165e10..f75f0eba7dbf382954524d56e6280826d3a06037 100644 (file)
@@ -82,7 +82,7 @@ void esp_crosscore_int_init() {
     assert(err == ESP_OK);
 }
 
-void esp_crosscore_int_send_yield(int coreId) {
+void IRAM_ATTR esp_crosscore_int_send_yield(int coreId) {
     assert(coreId<portNUM_PROCESSORS);
     //Mark the reason we interrupt the other CPU
     portENTER_CRITICAL(&reasonSpinlock);