| 平台 | 目标 | 板子 |
| lm620 | r4f4 | e837n_v01 |
验证 lm620 平台 xt_fal 后端(xt_fal_lm620):分区遍历、系统分区只读访问、testdata 读写擦、基于 testdata 的二级分区注册与验证。
测试场景
- **遍历所有已注册分区**:获取 int_flash 元信息,遍历 16 个分区槽位,打印每个分区的元信息并读前 256 字节(dump 前 32 字节)。
- **只读访问系统分区**:读取 mbl / xboot / xknl / zknl / part_tbl 前 256 字节。绝对禁止在此对系统分区做 erase/write。
- **testdata 分区读写擦验证**:擦除首 4KB → 校验全 0xFF → 写 256 字节递增序列并读回比对 → 偏移 0x100 写 0xA5 序列并读回比对 → 末尾 256 字节边界读。
- **二级分区注册与验证**:检查 testdata 头部 4KB 是否存在有效二级分区表;若无效则写入默认模板(logo/param/user),解析后通过 xt_fal_register 注册为二级 flash,再对每个二级分区做 erase+write+read+比对。
构建和运行
cd examples/platform_specific/lm620/fal
xt --target lm620_internal/r4f4 fullclean build
分区表修改
本示例工程通过 ext_cfg/xpartition.ini 覆盖默认分区表:
| 分区 | 地址 | 大小 | 说明 |
| data | 0x003C1400 | 0x0000E000 (56KB) | 缩小(默认 0x3EC00) |
| testdata | 0x003CF400 | 0x00030000 (192KB) | 新增 |
二级分区布局(基于 testdata 平台分区):
| 二级分区 | 地址 | 大小 | 说明 |
| 分区表 | 0x003CF400 | 4KB | 二级 part_tbl 存储 |
| logo | 0x003D0400 | 64KB | 开机 logo |
| param | 0x003E0400 | 32KB | 参数 |
| user | 0x003E8400 | 92KB | 用户数据 |
注意事项
⚠️ 警示
- **首次烧录会丢失原 data 分区用户数据**:本工程通过 ext_cfg/xpartition.ini 覆盖默认分区表(data 缩小到 56KB,新增 testdata 192KB),分区表变更后原 data 区数据不再可用。
- **绝对禁止在 test2 中对系统分区(mbl/xboot/xknl/zknl/part_tbl)做 erase/write 操作,会导致砖机**。test2 仅做只读访问。