spi_flash: Detected size smaller than the size in the binary image header

错误 spi_flash: Detected size(8192k) smaller than the size in the binary image header(16384k).

错误原因:固体编译配置与硬件实际SPI flash大小不匹配

在翻译时大家要注意专业术语:"binary image header"直译是“二进制镜像头部”,但结合实际指的是固定文件的配置头。

发生错误的环节:bootloader阶段

在bootloader阶段,当SPI驱动尝试挂载flash时,发现实际读取到的ID对应容量小于固件头部声明的期望值,于是中止启动流程并输出这个错误。
bootloader启动加载模式:Bootloader是固化在设备非易失性存储器(如ROM、Flash)中的小程序,在CPU加电后自动运行,它独立于操作系统,直接与硬件交互,完成底层初始化后加载并启动更高层软件。
ESP32的启动流程:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-guides/startup.html

SPI flash的作用

SPI flash 是ESP32上的一种非易失性存储器(NVM)——关键的外部存储设备,用于持久化存储数据程序和数据。若没有SPI flash,ESP32无法运行用户代码,因为它没有内部的用户可编程的程序存储器​​
1.存储固件代码:ESP32在启动时从SPI flash加载固件(如app_main和FreeRTOS任务代码)
2.存储只读数据:包括分区表、文件系统、证书、配置参数等。
3.运行时数据持久化:用于保存WI-FI凭证、传感器校准数据等
4.工作方式:ESP32通过SPI总线与外部flash芯片通信,非易失存储器(断电后数据不丢失)

解决办法

vscode操作演示
最后注意保存,再编译一下即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值