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调试方法的主要内容,如果未能解决你的问题,请参考以下文章