问题描述
一次ESP32的项目中,连接wifi后,通过API获取数据,但每次刚连接wifi后,ESP32就直接重启了,日志报告如下:
关键是:
Guru Meditation Error: Core 0 panic'ed (Stack protection fault).
Detected in task "main" at 0x420107b6
0x420107b6: hefeng_get at C:/Users/chuan/Desktop/DesktopPanel_42_V1.2_20240331/components/net_api/weather.c:384
Stack pointer: 0x3fca3e40
Stack bounds: 0x3fca3f0c - 0x3fca5100
Core 0 register dump:...
关键信息是第一行,Guru Meditation Error: Core 0 panic’ed (Stack protection fault).
查看官方说明:
解决办法
在工程的 sdkconfig文件中,把
# CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y
注释掉即可
重新编译烧录运行,发现新的问题:
***ERROR*** A stack overflow in task main has been detected.
Core 0 register dump:
从信息来看,应该是mian的stack overflow了。
新问题 解决办法
给 main 的 stack 配置更大的空间
在工程的 sdkconfig文件中,把CONFIG_ESP_MAIN_TASK_STACK_SIZE 设置 更大
CONFIG_ESP_MAIN_TASK_STACK_SIZE=102400