esp8266:isr_not_in_iram

ISR not in IRAM!

21 октября 2020

Столкнулся сегодня с бесконечной цикличной перезагрузкой ESP8266 после загрузки одного из скетчей. В мониторе порта при этом появлялся большой блок HEX-кода и сообщение «ISR not in IRAM!»

Методом исключения удалось выяснить, что к этому приводит строчка attachInterrupt для установки прерывания. Смена пина не помогла.

Путём гугления было найдено решение. Необходимо самой первой строкой в скетче написать следующую конструкцию:

void ICACHE_RAM_ATTR my_int();

где my_int — название вашей функции обработчика прерывания.

  • esp8266/isr_not_in_iram.txt
  • Последнее изменение: 01.01.2026 15:41
  • r0wbh