使用的官方SDK,版本:IDF Version:v3.2-216-g7b78b97-dirty
问题描述:
当程序进入死循环,会触发看门狗复位,但是复位重启后,发现STA模型下无法连接AP,如果在AP模式下,无法看到SSID。通过esp_restart();软重启,重启后,依然连接不上。只能设备断电上电,或者按reset复位才能解决。
验证测试:
在上电后,wifi初始化中,在调用esp_wifi_init()前,提前调用esp_wifi_deinit和esp_wifi_restore也无法解决。
原因分析:
发现触发看门狗复位会调用components\freertos\port\esp8266\panic.c模块中panicHandler函数,这个函数会设置相关寄存器,并打印相关异常信息。如下所示:
经测试发现屏蔽红框中的代码,就可以解决问题。
解决办法:
方法一:就是上面所说的屏蔽红框代码;
方法二:进入menuconfig把宏CONFIG_ESP_PANIC_SILENT_REBOOT启用(其实和方法一的原理一样,都是屏蔽那段代码),如下所示:选择“silent reboot”