本文共 606 字,大约阅读时间需要 2 分钟。
前几天在烧录 ESP32 固件时,遇到了一个让人头疼的问题,设备启动后一直报错,日志里全是报错,看得心惊胆战。错误日志大致如下:
E (362) spi_flash: Detected size(4096k) smaller than the size in the binary image header(
这个问题扑面而来,让我一时间不知所措。首先,我认为问题可能与 SD 卡的读写速度有关。我尝试更换写入工具,并调整布lok_state到双向擦除和写入模式。这一步似乎起到了作用,因为写入速度得到提升,但错误提示依然存在。
基于此,我怀疑固件版本可能与硬件不兼容。经过检查,发现确实存在固件版本与硬件配置不匹配的问题。这种情况下,我不得不重新寻找适配的固件版本,重新启动项目。
此外,在烧录过程中,我忽略了缓冲区大小的问题。我调整了WriteBuffer Size的设置,确保其足够大以应对大块数据的烧录需求。尽管如此,问题依旧没有完全解决。
在此过程中,我查阅了多个技术文档和论坛,发现在烧录过程中,引导记录可能会影响固件烧录的成功率。于是,我尝试使用 esp-idf compile tools手动擦除并重新写入SF引导记录后,问题得以解决。
总结来说,解决这个问题需要从多个方面入手,包括检查固件版本、调整写入设置、清除引导记录等步骤。虽然一开始的困扰感到棘手,但通过系统排查,问题最终得到有效解决。
转载地址:http://nsckk.baihongyu.com/