调整 WS53 Flash 分区
本文以扩展客户预留区为例,说明如何同步修改分区表和链接容量,并检查调整后的配置。默认分区 ID、地址换算及布局见内存布局。
准备与适用范围
- 适用于 WS53 SDK 1.10.106 的默认
ws53_liteos_app布局,调整前先核对本地配置是否与本文一致。 - 分区表文件:
src/build/config/target_config/ws53/param_sector/param_sector.json。 - 链接容量定义:
src/drivers/boards/ws53/memory_config/include/memory_config_common.h。 - 需要掌握当前镜像、升级包和客户数据的实际空间需求;容量不足时不能直接套用示例。
本文所有配置区间采用 Flash 相对偏移,记法 [起点, 终点) 不包含终点。
可调整范围与约束
风险提示: 修改固定引导区、APP 起始地址或保留数据区,可能导致设备无法启动或数据丢失。变更前应保存原始分区配置、匹配的固件和需要保留的数据,并确认开发板的恢复烧录方式。以下示例仅说明容量调整关系,不代表已完成实板启动或升级验证。
下表均为默认布局的相对偏移,单位为字节。
| 区域 | 偏移范围(左闭右开) | 调整约束 |
|---|---|---|
| 固定引导与参数区 | [0x000000, 0x030000) |
不可调整,包含根公钥、SSB、出厂配置、NV 备份和 FlashBoot 等 |
| APP 镜像区 | [0x030000, 0x270000) |
0x20 起始偏移保持不变;调整尾部容量时同步修改 0x20、0x21 长度,保持 Acore 起点 0x05D000 不变 |
| FOTA 镜像区 | [0x270000, 0x3F3000) |
0x22 起点必须接续 APP 镜像区终点;用于压缩升级、OTA 数据、产测镜像或 B 面镜像时,以对应方案确定容量 |
| 客户预留区 | [0x3F3000, 0x3FA000) |
起点接续 FOTA 区终点,可按需求分配给 0x30~0x34,总范围不得侵入固定区域 |
| 固定功能区 | [0x3FA000, 0x400000) |
死机信息 0x11 和 NV 数据 0x10,不可调整 |
可调整分区的起始偏移和大小均须按 4 KiB(0x1000)对齐。固定分区保持原值,不要为满足对齐而改动根公钥等既有条目。
FOTA 升级包保存注意事项给出了运行程序区与压缩升级包存放区约 1:0.7 的容量参考。该比例来自压缩率估计,不能替代实际升级包大小检查,也不能直接作为 0x20 整体范围的硬性下限:默认 0x22 / 0x20 约为 0.672,而 0x22 / 0x21 约为 0.729。确定容量时必须明确升级对象,并检查所用方案的完整空间需求。
调整示例:扩展客户预留区
假设 Acore 应用区具有至少 8 KiB 可缩减余量,且 FOTA 区减少 4 KiB 后仍满足所用升级方案,可将这 12 KiB 合并到 0x30。
| 分区 ID | 起始偏移:调整前 → 调整后 | 长度:调整前 → 调整后 | 调整后结束偏移(不含) |
|---|---|---|---|
0x20 |
0x030000 → 0x030000 |
0x240000 → 0x23E000 |
0x26E000 |
0x21 |
0x05D000 → 0x05D000 |
0x213000 → 0x211000 |
0x26E000 |
0x22 |
0x270000 → 0x26E000 |
0x183000 → 0x182000 |
0x3F0000 |
0x30 |
0x3F3000 → 0x3F0000 |
0x007000 → 0x00A000 |
0x3FA000 |
- 在
param_sector.json中同步减少0x20、0x21的长度各0x2000。两者重叠,合计释放 8 KiB。 - 将
0x22起点前移0x2000,长度减少0x1000,使终点变为0x3F0000。 - 将
0x30起点前移0x3000,长度增至0xA000,保持终点0x3FA000不变。 -
同步修改
src/drivers/boards/ws53/memory_config/include/memory_config_common.h中的 Acore Flash 长度定义:当前默认值为
(0x213000 - CODE_INFO_OFFSET),CODE_INFO_OFFSET为0x300。FALSH是源码中宏名的实际拼写;acore_memory_config.h基于此宏计算APP_FLASH_PROGRAM_LENGTH。不要将其与同文件中的旧宏APP_PROGRAM_LENGTH混淆。
配置一致性检查
- 核对
起始偏移 + 长度 = 结束偏移,确认 APP、FOTA、预留区边界连续,可调整范围按 4 KiB 对齐。 - 保留
0x20与0x21原有的包含关系,其他分区不得引入意外重叠或越界。 - 核对链接区域与分区容量一致,并检查生成镜像和升级包实际大小;具体构建命令见编译方法。
- 分区配置变更必须反映到实际生成和烧录的分区参数镜像中,仅更换应用镜像不足以更新分区表。
- 验证新布局下的启动、升级和客户数据保存。若异常,停止使用该布局,按预先确认的恢复方式还原原始分区配置及匹配固件;仅通过文档检查或编译不能认定布局已验证。