您当前的位置:首页 > 智能家居 > ESP8266固件启动失败报错chksum 0xef csum err 网站首页 智能家居
ESP8266固件启动失败报错chksum 0xef csum err
发布时间:2023-06-07 17:50:09编辑:阅读()
-
做为一个标准得手残党,手头吃灰的ESP8266-01/ESP8266-01s模块越来越多,想着将这些废旧模块利用起来烧录一下之前发布的ESP8266远程控制插座固件。烧录后满心欢喜的拿出手机用小程序给ESP8266配网,可是无论如何也找不到设备的热点。
于是无奈的掏出串口助手这个大杀器,然而却出现了如下错误(为什么有些ESP8266不报错?)。
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 25020, room 16
tail 12
chksum 0xef
ho 0
tail 12 room 4
load 0x00000000, len 0, room 12
tail 0
chksum 0xef
load 0x00000000, len 0, room 4
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c在网上查找,大多数都是说修改成DOUT模式,但是并没有给出过多解释,对于这个解答是很难信服的,因为其他的ESP8266都可以正常运行,而且这里无论设置什么参数也并无影响。也没其他办法只有先试试,毕竟这里有不同设置总有存在的意义,于是尝试修改了SPI SPEED、SPI MODE、Flash Size,使用这三个配置参数的不同组合进行烧录查看日志,偶然发现有一组参数报另外的错误看起来这次报错内容比较多,像是运行了一般又失败了(这个错误的解决方法在另外一篇里讲),经过反复摸索和研究,终于明白了出错的原因。
如果你也遇到了csum err错误,首先尝试修改SPI MODE参数,进行烧录,每次烧录后查看串口打印的日志。这个步骤主要是确认你的ESP8266支持哪种通过SPI读取Flash的方式,如果报错信息变了或者可以正常运行了,说明当前ESP8266只能用这种选项烧录,其他选项烧录必将都无法运行。
经过测试,刚好这块ESP8266只支持DOUT方式读取,于是修改固件编译配置,将bootloader中Flash Mode编译选项改为DOUT,再次烧录成功运行。
总结:从解决过程理解ESP8266固件重启运行过程如下,启动时使用SPI接口读取Flash中的bootloader,然后通过bootloader来加载用于的固件,烧录工具中设置的SPI MODE就是告诉ESP8266使用哪种种SPI指令和参数来读取bootloader,当报错中含有csum err, ets_main.c信息时说明ESP8266读取bootloader过程就失败了。再次查询资料恍然大悟,有些ESP8266支持所有模式读去flash,有些厂商为了节约成本或者外设复杂,就把spi的部分引脚用作其他用户了,只支持部分SPI读取flash的方式,这就是有时候认为烧录时无论SPI MODE设置为什么参数都能够正常运行的原因,而部分ESP8266却会报错。
关键字词:ESP8266启动失败,chksum 0xef,csum err
相关文章
-
无相关信息