Guru Meditation Error: разбор паники ESP32
Строка «Guru Meditation Error: Core 0 panic'ed» означает аппаратное исключение процессора — чаще всего обращение по неверному указателю (LoadProhibited/StoreProhibited) или запуск некорректной инструкции, и лечится это отладкой кода, а не заменой платы.
Возможные причины
- LoadProhibited/StoreProhibited — обращение по нулевому или битому указателю (null pointer, use-after-free)
- IllegalInstruction — повреждённая память программы или переполнение стека вызвало прыжок в случайный адрес
- Переполнение стека задачи FreeRTOS при рекурсии или больших локальных массивах
- Обращение к памяти PSRAM/flash до её инициализации
- Гонка данных между задачами при работе с общими указателями без синхронизации
Что сделать
- Скопируйте полный вывод паники, включая Backtrace, из Serial Monitor сразу после сброса.
- Расшифруйте адреса из Backtrace через инструмент idf.py monitor (автоматическая декодировка) или esp-idf-monitor/addr2line вручную.
- Проверьте код рядом с указанной функцией на использование указателей после освобождения памяти (free/delete) или до их инициализации.
- Увеличьте размер стека проблемной задачи FreeRTOS при подозрении на переполнение (параметр stack size в xTaskCreate).
- Включите опцию Core Debug Level в Arduino IDE (Verbose) для более подробного вывода в момент падения.
- Изолируйте участок кода тестами: закомментируйте подозрительный блок и проверьте, повторяется ли паника.
Когда менять железо
Аппаратная замена почти никогда не требуется — Guru Meditation Error практически всегда указывает на ошибку в прикладном коде, а не на дефект чипа.
Не официальная поддержка Espressif Systems. Точные названия регистров и опций сверяйте с версией вашего SDK/ядра.