The program runs for a short time (a few thousand iterations of a simple loop on both cores) before the watchdog triggers. The crash consistently points to a timeout in the interrupt watchdog on CPU1.
Error Messages and Logs:
The primary error is the Interrupt WDT timeout. Below are the most relevant sections from the crash log, showing the panic origin and stack trace. Core 0 also dumps registers, but Core 1 is the one that panics.
Code: Select all
Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1).
Core 1 register dump:
MEPC : 0x4ff05bde RA : 0x4ff086bc SP : 0x4ff116f0 GP : 0x4ff0f100
--- 0x4ff05bde: rv_utils_get_core_id at C:/Espressif/esp-idf-v5.5.1/components/riscv/include/riscv/rv_utils.h:92
--- (inlined by) spinlock_release at C:/Espressif/esp-idf-v5.5.1/components/esp_hw_support/include/spinlock.h:188
--- (inlined by) vPortExitCriticalMultiCore at C:/Espressif/esp-idf-v5.5.1/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:553
--- 0x4ff086bc: xTaskIncrementTickOtherCores at C:/Espressif/esp-idf-v5.5.1/components/freertos/esp_additions/freertos_tasks_c_additions.h:125Additionally, upon some reboots, I occasionally get a flash checksum failure:
Code: Select all
Checksum failure. Calculated 0x3b stored 0xb9
ets_main.c 347Behavior with Watchdogs Disabled:
If I disable the watchdogs , the board does not reset. Instead, it simply hangs at a random iteration of the same simple loop, with no further output or activity.
Example of the hang point (last serial output):
Code: Select all
Core 0: x = 1.520047 (iter 62050)
Core 1: x = 1.520047 (iter 62000)