10269|7

1万

帖子

25

TA的资源

版主

楼主
 

ESP8266固件完整性检查 [复制链接]

  本帖最后由 dcexpert 于 2016-8-5 22:43 编辑

在最新的ESP8266固件中(昨天才加入的),提供了固件完整性检查的功能:

>>> import esp
>>> esp.check_fw()
size: 525336
md5: 56c08c1678a4c098048284846b439b6a
True


如果最后显示True,代表固件是完整的,否则可能存在问题(即使可以运行)。这次活动的ESP8266模块的固件还不带有这个功能,下周我会提供更新的固件,大家也可以下载官方的固件(esp8266-20160805-v1.8.2-90以后的版本)试试。

最新回复

刷了esp8266-20160805-v1.8.2-90-g7fb3147.bin 这个不乱码,但 chechk_fw 是 False >>> import esp >>> esp.check_fw() size: 527328 md5: de6f1039be64be8932e5931ca211ad6f False >>>   详情 回复 发表于 2016-8-7 20:07
点赞 关注
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 
如果显示False,最好重新刷一次固件,刷固件前,先清除一次Flash,然后在写入固件。

点评

我想请问一下,固件烧写进去,运行不了,出现乱码,怎么解决  详情 回复 发表于 2016-8-5 23:38
 
 
 

回复

1059

帖子

1

TA的资源

版主

板凳
 
dcexpert 发表于 2016-8-5 22:40
如果显示False,最好重新刷一次固件,刷固件前,先清除一次Flash,然后在写入固件。

我想请问一下,固件烧写进去,运行不了,出现乱码,怎么解决

点评

偶尔会出现这个情况,通常是ESP8266模块内部flash出现错误,这时需要重新刷固件。 如果直接刷还是乱码,通常就需要擦除一次Flash,然后在写固件。在windows下不知道用什么软件擦除,在Linux下用esptools,如:  详情 回复 发表于 2016-8-5 23:51
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
qwerghf 发表于 2016-8-5 23:38
我想请问一下,固件烧写进去,运行不了,出现乱码,怎么解决

偶尔会出现这个情况,通常是ESP8266模块内部flash出现错误,这时需要重新刷固件。

如果直接刷还是乱码,通常就需要擦除一次Flash,然后在写固件。在windows下不知道用什么软件擦除,在Linux下用esptools,如:

esptool.py --port /dev/ttyXXX erase_flash

点评

刷了esp8266-20160805-v1.8.2-90-g7fb3147.bin 这个不乱码,但 chechk_fw 是 False  详情 回复 发表于 2016-8-7 20:07
print("AP ifconfig:", network.WLAN(network.AP_IF).ifconfig()) print("Free WiFi driver buffers of type:") for i in range(5): print("4: 1074791312" (i, esp.esf_free_bufs(i)))  详情 回复 发表于 2016-8-7 20:00
好的,多谢,我试试  详情 回复 发表于 2016-8-6 00:23
 
 
 

回复

1059

帖子

1

TA的资源

版主

5
 
dcexpert 发表于 2016-8-5 23:51
偶尔会出现这个情况,通常是ESP8266模块内部flash出现错误,这时需要重新刷固件。

如果直接刷还是乱码 ...

好的,多谢,我试试
 
 
 

回复

98

帖子

0

TA的资源

一粒金砂(中级)

6
 
dcexpert 发表于 2016-8-5 23:51
偶尔会出现这个情况,通常是ESP8266模块内部flash出现错误,这时需要重新刷固件。

如果直接刷还是乱码 ...

   print("AP ifconfig:", network.WLAN(network.AP_IF).ifconfig())
    print("Free WiFi driver buffers of type:")
    for i in range(5):
        print("4: 1074791312" (i, esp.esf_free_bufs(i)))
    print("lwIP PCBs:")
    lwip.print_pcbs()


main()
Fatal exception 28(LoadProhibitedCause):
epc1=0x40250b4d, epc2=0x00000000, epc3=0x00000000, excvaddr=0x0000001c, depc=0x00000000

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 30832, room 16
tail 0
chksum 0x12
load 0x3ffe8000, len 1060, room 8
tail 12
chksum 0xc6
ho 0 tail 12 room 4
load 0x3ffe8430, len 3000, room 12
tail 12
chksum 0xd8
csum 0xd8




    print("AP ifconfig:", network.WLAN(network.AP_IF).ifconfig())
    print("Free WiFi driver buffers of type:")
    for i in range(5):
        print("4: 1074791312" (i, esp.esf_free_bufs(i)))
    print("lwIP PCBs:")
    lwip.print_pcbs()


main()
Fatal exception 28(LoadProhibitedCause):
epc1=0x40250b4d, epc2=0x00000000, epc3=0x00000000, excvaddr=0x0000001c, depc=0x00000000

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 30832, room 16
tail 0
chksum 0x12
load 0x3ffe8000, len 1060, room 8
tail 12
chksum 0xc6
ho 0 tail 12 room 4
load 0x3ffe8430, len 3000, room 12
tail 12
chksum 0xd8
csum 0xd8
此行乱码
然后重复上面错误

用了此命令擦除还是不行。
esptool.py --port /dev/ttyXXX erase_flash

刷回 esp8266-20160710-v1.8.2.bin 这个版本就不会乱码。之后的全部都会乱码。

esptool.py -p /dev/cu.wchusbserial1410 write_flash 0x00000 ~/Downloads/esp8266-20160807-v1.8.2-104-ga4aaf82.bin
esptool.py v1.1
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0000
Writing 528384 @ 0x0... 528384 (100 %)
Wrote 528384 bytes at 0x0 in 45.9 seconds (92.2 kbit/s)...
Leaving...


 
 
 

回复

98

帖子

0

TA的资源

一粒金砂(中级)

7
 
dcexpert 发表于 2016-8-5 23:51
偶尔会出现这个情况,通常是ESP8266模块内部flash出现错误,这时需要重新刷固件。

如果直接刷还是乱码 ...

刷了esp8266-20160805-v1.8.2-90-g7fb3147.bin 这个不乱码,但 chechk_fw 是 False
>>> import esp
>>> esp.check_fw()
size: 527328
md5: de6f1039be64be8932e5931ca211ad6f
False
>>>

点评

目前测试看,必须全部清除Flash,校验才会正确。 有时运行esptool.py --port /dev/ttyXXX erase_flash后速度非常快,这时很可能没有真正擦除,可以尝试在擦除一下。一般正常擦除Flash需要2S以上。 出现乱码后  详情 回复 发表于 2016-8-7 21:12
 
 
 

回复

1万

帖子

25

TA的资源

版主

8
 
szqt 发表于 2016-8-7 20:07
刷了esp8266-20160805-v1.8.2-90-g7fb3147.bin 这个不乱码,但 chechk_fw 是 False
>>> import esp
>>> ...

目前测试看,必须全部清除Flash,校验才会正确。

有时运行esptool.py --port /dev/ttyXXX erase_flash后速度非常快,这时很可能没有真正擦除,可以尝试在擦除一下。一般正常擦除Flash需要2S以上。

出现乱码后,通常擦除Flash可以恢复正常。写入Flash时,注意电源稳定性,有些USB线阻抗较高,容易写入失败。官方的固件,偶然也遇到过出问题的,写入后不能运行,自己重新编译源码却没有问题。

esp.check_fw() 这个功能也是官方刚提供的,感觉还有些不太稳定。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表