Skip to content

分区布局 ​

分区表决定应用大小、LittleFS 容量和是否能 OTA。源码当前使用 partitions/4MB.csv、8MB.csv、16MB.csv,名称以 platformio.ini 为准。

布局总览 ​

文件Flashapp0app1LittleFSOTA
4MB.csv4MB0x10000 / 3.1875MiB无0x340000 / 768KiB否
8MB.csv8MB0x10000 / 3.5MiB0x390000 / 3.5MiB0x710000 / 960KiB是
16MB.csv16MB0x10000 / 7MiB0x710000 / 7MiB0xE10000 / 1.9375MiB是

4MB/8MB 布局使用 20KB NVS,16MB 布局使用 16KB NVS 并增加 4KB phy_init;三套布局都包含 8KB otadata。CSV 中 LittleFS 分区标签为 spiffs,这是 Arduino-ESP32 的兼容命名,不代表实际文件系统变成 SPIFFS。

环境对应关系 ​

环境分区表OTA
esp32-F4R04MB.csv否
esp32c3-F4R04MB.csv否
esp32c6-F4R04MB.csv否
esp32-F8R08MB.csv是
esp32-F8R88MB.csv是
esp32c6-F8R08MB.csv是
esp32s3-F8R08MB.csv是
esp32s3-F8R88MB.csv是
esp32s3-F16R816MB.csv是

OTA 约束 ​

  • 只有存在 app1 且编译启用 FASTBEE_ENABLE_OTA=1 的环境才注册 /api/ota/*。
  • 4MB 环境调用 OTA 接口路由不注册,通常得到 404;501仅适用于已编入OTA但无升级槽的路径。需要写入时按配置保全流程处理。
  • 8MB/16MB 环境的固件必须小于 app 分区;开始升级还要满足设备内存门控。
  • OTA 完成后设备延迟几秒重启,客户端应先轮询免认证的 /api/health,再重新登录验证版本。

LittleFS 约束 ​

  • Web 资源、/config 配置和日志共用 LittleFS 分区。
  • 发布时由 deploy.ps1 或 gzip-www.js 生成 staging 目录并上传,不要直接把源码 data/www 当镜像。
  • 分区表、固件和 LittleFS 必须来自同一次构建;只更新其中一项可能导致页面与 API 版本不匹配。

切换分区或固件 ​

  1. 保全设备身份、网络、认证、协议、外设、规则及非Web文件;通用配置包不是完整备份。
  2. 确认 Flash 容量和目标环境匹配。
  3. 核对实际布局、活动槽与恢复路径;若确定需要整片擦除,单独确认其破坏配置的范围,不能默认擦除。
  4. 一次性烧录 bootloader、分区表、应用和 LittleFS(合并固件地址保持 0x0)。
  5. 首次启动重新配网,并检查 /api/system/info、/api/health 和 /api/system/capabilities。

更多升级流程见 OTA 固件升级,构建命令见 构建配置。

蜂信物联 | fastbee.cn