本文主要是介绍ESP32S 遇到的莫名其妙的重启,一定选择ESP32 Dev Module,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
正常启动:
13:39:09.759 -> //正常启动
13:39:09.759 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
13:39:09.806 -> configsip: 0, SPIWP:0xee
13:39:09.806 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
13:39:09.806 -> mode:DIO, clock div:1
13:39:09.806 -> load:0x3fff0030,len:1184
13:39:09.806 -> load:0x40078000,len:13260
13:39:09.806 -> load:0x40080400,len:3028
13:39:09.806 -> entry 0x400805e4
13:39:10.303 -> //正常启动
无故重启: 貌似任务栈数据溢出,以下提示
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
或者
rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
看到资料:
任务栈数据溢出:
系统复位,出现rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT),原因是任务栈数据溢出,将任务栈大小配置为2048后,程序正常启动并运行。记得原来用STM32的时候,任务栈用不了这么大,可能原因是arduino代码比较吃内存,毕竟用的是别人写好的库,我测试的工程中用了别人写好的oled库,函数的嵌套和调用比较多导致。
原文链接:https://blog.csdn.net/r277167103/article/details/135391850
更改了: 不管用,还是无故重启C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11目录下所有文件中的配置
#define CONFIG_ARDUINO_LOOP_STACK_SIZE 8192 //原始
#define CONFIG_ARDUINO_LOOP_STACK_SIZE 32768 //改后
#define CONFIG_ESP_COREDUMP_STACK_SIZE 1024 //原始
#define CONFIG_ESP_COREDUMP_STACK_SIZE 2048 //改后
#define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 1024 //原始
#define CONFIG_FREERTOS_IDLE_TASK_STACKSIZE 2048 //改后
电源问题: 经排查,也不行
如果你不用 wifi & ble 会如何,看你 log 最后出问题的时候在做 rf cal,需要比较大的电流。
另外,每次重启都是 rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)?
解决方法,LOD芯片放到MCU附件 就可以了,可能是电源线太细了
最终解决方法:
必须选这个ESP32 Dev Module,不能选Node32s和NodeMCU-32S,否则会莫名其妙的重启
这篇关于ESP32S 遇到的莫名其妙的重启,一定选择ESP32 Dev Module的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!