ESP8266调试方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zzfenglin/article/details/79223619

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 打印信息,进一步查证来排查问题。





展开阅读全文

没有更多推荐了,返回首页