1.RAM使用不要超过50%
2.usb直接插在电脑上,不要插在usb扩展坞上,防止电流太小造成开发板电量不够而引起的不断重启(千万注意这个!)
3.减少全局变量使用
4.减少不必要的方法定义
5.
//调试代码的时候打开
struct rst_info *rtc_info = system_get_rst_info();
os_printf(“reset reason: %x\n”, rtc_info->reason);
if (rtc_info->reason == REASON_WDT_RST ||
rtc_info->reason == REASON_EXCEPTION_RST ||
rtc_info->reason == REASON_SOFT_WDT_RST) {
if (rtc_info->reason == REASON_EXCEPTION_RST) {
os_printf(“Fatal exception (%d):\n”, rtc_info->exccause);
}
os_printf(“epc1=0x%08x, epc2=0x%08x, epc3=0x%08x,excvaddr=0x%08x, depc=0x%08x\n”,
rtc_info->epc1, rtc_info->epc2, rtc_info->epc3, rtc_info->excvaddr, rtc_info->depc);
}
引入上面的代码就可以看到崩溃的信息,然后对照官网手册查看原因
官网手册:https://docs.ai-thinker.com/_media/esp8266/faq/esp8266_reset_causes_and_common_fatal_exception_causes_cn.pdf
其实大多都是由于ram使用超过50%(剩下的RAM不够了)造成的!