一、现象描述
1、flash_download_tools_v3.6.5.exe
2、烧录参数如下:
3、我手上有两个不同的ESP8266模块(模块A、模块B),模块A运行后报如下错误:
load 0x40100000, len 2592, room 16
tail 0
chksum 0xef
load 0x00000000, len 0, room 8
tail 0
chksum 0xef
load 0x00000000, len 0, room 0
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c
3、我手上有两个不同的ESP8266模块(模块A、模块B),模块B运行后报如下错误:
2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 4Mbit(256KB+256KB)
jump to run user1 @ 1000
mismatch map 4,spi_size_map 0
二、原因分析csum err(个人猜想)
1、烧录时勾选DoNotChgBin,因此程序的SPI参数使用了boot_v1.7.bin里面的SPI参数设置。
2、模块A不支持该SPI参数,导致无法正常读取FLASH,报校验错误。
3、模块B支持该SPI参数,从打印中我们也可以看到boot_v1.7.bin中的SPI设置是40MHz、QIO。
三、原因分析mismatch map 4,spi_size_map 0(个人猜想)
1、模块B为什么也不能正常运行呢?原因在于我们勾选了DoNotChgBin,导致烧录工具无法将spi_size_map写入到boot中。而boot_v1.7.bin的设置全为00,这也就是spi_size_map为什么是0。
四、解决方案
1、方法一、去掉DoNotChgBin勾选,再烧录。
2、方法二、用编辑直接改掉boot_v1.7.bin中的两个字节,再烧录。