Open mbratch opened 1 week ago
C:/Users/mdbra/.espressif/frameworks/esp-idf-v5.2.1/components/driver/gptimer/gptimer.c:543
if (on_alarm_cb(timer, &edata, timer->user_ctx)) {
This implied the gptimer ISR is calling a user callback function while the cache is disabled. (Assume you have enabled the CONFIG_GPTIMER_ISR_IRAM_SAFE=y
). The root cause can be, your callback function is not in the IRAM, or the user context is not in the internal RAM.
Thank you @suda-morris . The details are in the other ticket I linked, but I do have the callback configured to be in IRAM.
My sdkconfig settings:
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM=y
CONFIG_GPTIMER_ISR_IRAM_SAFE=y
I'll investigate the user context.
Answers checklist.
IDF version.
5.2.1
Espressif SoC revision.
ESP32-PICO-D4
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
PowerShell
Development Kit.
ESP32 Dev Kit 1
Power Supply used.
USB
What is the expected behavior?
I would expect that the gptimer interrupt handlers, if very simple, would not cause a system failure or crash if they occur during calls the the NVS API.
What is the actual behavior?
Crash can occur
Steps to reproduce.
Debug Logs.