ESP8266调试方法

Posted 枫之星雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266调试方法相关的知识,希望对你有一定的参考价值。

ESP8266在开发的过程中无法进行仿真,所以,为了排查问题,我们只能用别的方法,下面一起来看看常用的两种方法:添加UART打印和Fatal 查证方法。


添加UART打印


对于 ESP8266_NONOS_SDK,示例代码:

os_printf("SDK version:%s\\n", system_get_sdk_version());

对于 ESP8266_RTOS_SDK,示例代码:

printf("SDK version:%s\\n", system_get_sdk_version());



Fatal 查证方法


如果运行过程中,出现 fatal exception 打印信息,ESP8266 会触发看门狗异常重启。

 

下面以我在开发中实际遇到的一次Fatal信息为例,来说明下查证方法,我使用的是ESP8266_RTOS_SDK的工程,实际出现此信息的打印如下:

Fatal exception (28): 
epc1=0x401000e3
epc2=0x00000000
epc3=0x00000000
epcvaddr=0x00011bb0
depc=0x00000000
rtn_add=0x401003d4

查证步骤如下:

1. 在当前运行固件的文件夹 (ESP8266_RTOS_SDK-master\\bin\\upgrade)中,找到当前运行固件对应的.s文件,注意目录可能跟你的不一样。

例如,烧录运行的是user1.4096.new.6.bin,则对应user1.4096.new.6.s文件。

2. 在运行固件对应的 .s 文件中搜索 exception 报错的 epc1 地址,如上例中是epc1=0x401000e3,那就在对应的.s文件中搜索401000e3,定位问题出现在哪个函数。搜索结果显示如下:


3. 在工程中搜索定位的函数接口,然后查看是否能明显看出问题所在。如果不能,就在出现问题的函数调用前后,添加 UART 打印信息,进一步查证来排查问题。





以上是关于ESP8266调试方法的主要内容,如果未能解决你的问题,请参考以下文章

求一个安信可ESP8266模块调试工具

求大神帮忙:ESP8266调试串口的时候,还没发AT指令,为啥一直自动接收数据,还是循环的?

如何在esp8266上实现web server

ESP8266和ESP32网络串口调试窗口(AP模式)

ESP8266和ESP32网络串口调试窗口(STA模式)

ESP8266烧录固件接线方法,配置掉电无法保存