xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_fal 单元测试

平台 目标
windows simulator
linux —
lm620 r4f4

覆盖 xt_fal(Flash 抽象层) Flash 抽象层模块的核心功能,使用模拟 Flash 内存进行测试。共 **9 组 39 项测试**。

测试分组

分组 测试项数 内容
1. fal_id 宏 5 MAKE_ID 边界值(0x00/0x12/0xFF)、GET_FLASH_ID 提取、GET_PARTITION_IDX 提取
2. register 4 NULL flash 拒绝、正常注册、多 flash 不同 ID、相同 flash 指针注册不同分区表
3. init/deinit 2 init 返回 XT_EOK、deinit 返回 XT_EOK
4. find/query 8 按名称查找 flash/分区、NULL 名称安全、无效名称返回 INVALID_ID、按 ID 获取分区/flash 字段校验、无效 ID 返回 NULL
5. read/write/erase 6 擦除后全 0xFF、写后读回一致、带偏移读写、无效 ID 操作负值返回、分区边界读写
6. multi flash 3 两个 flash 数据独立、flash 指针不同、flash_id 不同
7. shared flash 4 共享注册成功、flash 指针指向同一设备、用户分区写入不影响原分区数据、原分区在共享后仍可用
8. erase 2 部分擦除仅擦除指定范围、无效 ID 擦除失败
9. unregister 5 反注册用户分区表、反注册时输出信息、全部反注册后查找失败、无效 ID 反注册失败、反注册后按名称查找失败

预期行为

  • **fal_id 编码**:XT_FAL_MAKE_ID(flash_id, part_idx) 将 4-bit flash_id 和 4-bit 分区索引编码为单字节,GET_FLASH_ID 和 GET_PARTITION_IDX 正确解码
  • **注册与查找**:多次注册同一 flash 指针的不同分区表分配不同 flash_id,分区和 flash 可通过名称或 ID 双向查找
  • **读写擦除**:read/write 按偏移量操作模拟 Flash 内存,erase 将指定范围填充 0xFF,无效 ID 操作返回负值
  • **多 Flash 隔离**:不同 flash 设备的数据完全独立,通过 flash_id 区分
  • **共享 Flash**:同一 flash 设备可注册多套分区表,各自的分区指向同一物理设备但偏移/大小独立,数据互不破坏
  • **反注册**:反注册后可释放 flash_id 和分区表槽位,支持输出原始指针供用户回收

编译和运行

cd tests/xt_fal
xt --target windows/simulator fullclean build
xt --target windows/simulator run

注意事项

  • 测试使用模拟 Flash 内存(静态 uint8_t 数组),不需要真实 Flash 硬件
  • setUp 中注册两个 Flash 设备(flash1 含 3 分区 64KB,flash2 含 2 分区),每个测试用例独立初始化
  • tearDown 按 deinit → unregister 顺序清理,防止槽位残留