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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值