由于组件不可用,我最近不得不将我的ESP32 WROVER包从之前的16MB缩减到8MB。
这中断了我的更新过程,在执行Update.writeStream()
时显示了invalid segment length 0x15abba12
错误消息。
我写了我的新8MB分区如下(我使用FFAT(:
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xE000, 0x2000,
app0, app, ota_0, 0x10000, 0x2A0000,
app1, app, ota_1, 0x2B0000, 0x2A0000,
ffat, data, fat, 0x550000, 0x2B0000,
我的firmware.bin大小为1.4MB(1411248,或0x1588B0(。
我错过了什么?
好的。真奇怪。平台通常生产的firmware.bin似乎存在一些问题,因此出现了分段故障。通过简单地重新编译并再次链接,生成的firmware.bin正常,更新成功完成。
=>因此,如果您面临类似的段故障问题,请尝试在浪费时间调试实际工作代码之前重建固件bin文件。