我有一台带有ESP8266芯片的设备,尝试将固件(使用esptool)备份为1m和4m,然后重新加载固件,然后进入启动循环(请参阅下面的日志)。然后,我再次查看原始日志,发现它是8m(512k + 512k),然后再次将第二个芯片丢为8m。
esptool.py --port /dev/cu.usbserial --baud 115200 read_flash 0x000000 0x800000 light8m.bin
数据下降到4700000,因此可以解释启动循环(我认为)。当然,它比esptool的闪存大小报告要大,并且它不接受固件。
我的问题是如何处理将固件重新加载到芯片上。我担心使用--flash-size。
转储:
原始启动日志(启动正常时):
ets Jan 8 2013,rst cause:2, boot íode:(3,7)
load 0x40100000, len 1396, room 16
tail 4
chksuí 0x89
load 0x3ffe8000, len 776, room 4
táil 4
chksum 0xe8
ìoad 0x3ffe8308, len 540, room 4
tail 8
chksuí 0xc0
csum 0xc0
2nd boot version : 1.4(b1)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
OS SDK ver: 1.4.2(23fbe10) compiled @ Sep 22 2016 13:09:03
phy v[notice]gw_intf.c:333 Authorization success
bcn 0
del if1
usl
mode : sta(xx:xx:xx:xx:xx:xx)
add if0
[notice]key.c:77 rst reason:6
scandone
state: 0 -> 2 (â0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 20
pm open phy_2,type:2 0 0
cnt
connected with said, channel 1
dhcp client start…
ip:192.x.x.xx,mask:255.255.255.0,gw:192.x.x.x
[notice]mqtt_client.c:610 mqtt connect success
[err]timer_schema.c:514 ws_db_get_timer_posix op_ret:28
重新加载4m备份后:
load 0x40100000, len 1396, room 16
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4
tail 8
chksum 0xc0
csum 0xc0
2nd boot version : 1.4(b1)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 32Mbit(512KB+512KB) <-- changed from 8 to 32
jump to run user1 @ 1000
OS SDK ver: 1.4.2(23fbe10) compiled @ Sep 22 2016 13:09:03
rf_cal[0] !=0x05,is 0xFF
ets Jan 8 2013,rst cause:2, boot mode:(3,6) <-- bootloops indefinitely
尝试写入flash时出错:
A fatal error occurred: File light8m.bin (length 8388608) at offset 0 will not fit in 4194304 bytes of flash. Use --flash-size argument, or change flashing address.