ZHDA203
June
2026
AM2752-Q1 , AM2754-Q1 , AM620-Q1 , AM623 , AM625 , AM625-Q1 , AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62D-Q1 , AM62P , AM62P-Q1
-
1
-
摘要
-
商标
-
1简介
-
2坏块管理
- 2.1
块故障
- 2.2
修复坏块的可行性
-
3ROM 引导加载程序中的坏块管理
-
4TITM MCU+ SDK 中的坏块管理
- 4.1
闪存读取操作流程
- 4.2
闪存写入操作流程
- 4.3
闪存擦除操作流程
-
5TITM 处理器 SDK 中的坏块管理
- 5.1
闪存读取操作流程
- 5.2
闪存写入操作流程
- 5.3
闪存擦除操作流程
-
6总结
-
7参考资料
5.3 闪存擦除操作流程
- 擦除请求背景:
- UBI 磨损均衡算法在以下情况下触发擦除操作:
- 垃圾回收:回收包含过时数据的块。
- 磨损均衡:移动数据以均衡擦除次数的分布。
- 块回收:准备已用块以供重新分配。
- UBI 根据磨损均衡标准选择待擦除的块。
- 擦除前检查坏块:
- UBI 使用目标 PEB 编号查询坏块表格。
- MTD 执行 BBT 查找,提取 2 位状态码。
- 如果该块已被标记为坏块,则 UBI:
- 完全跳过擦除操作。
- 从当前树中删除 PEB。
- 将 PEB 添加到错误树中。
- 如果操作需要继续,则选择另一个块。
- 闪存擦除执行:
- 如果块正常,UBI 会使用块的物理地址调用 MTD 擦除函数。
- MTD 调用控制器驱动程序的擦除函数。
- 然后,驱动器使用块地址对地址寄存器进行编程,并向控制器的命令寄存器发出擦除命令。
- 擦除完成和状态检查:
- 驱动程序轮询就绪/繁忙状态线路或读取状态寄存器,等待操作完成。
- 完成后,驱动程序读取状态寄存器以检查 E-FAIL 位。
- E-FAIL = 0 表示擦除操作成功,驱动程序返回成功。
- E-FAIL = 1 表示擦除失败,驱动程序返回错误。
- 擦除成功处理:
- 如果擦除成功:
- UBI 会在跟踪结构中递增 PEB 的擦除计数。
- UBI 将已擦除的 PEB 移至空闲树,使其可供分配。
- 该块现在处于干净的擦除状态,所有页面均可用于编程。
- 擦除失败处理:
- 如果擦除失败:
- UBI 会更新内存中的 BBT。
- 坏块标记 (0x00,0x00) 将写入第一页的 OOB 区域。
- 更新 UBI 数据结构:
- 故障 PEB 将从当前树中删除。
- 故障 PEB 被添加到错误树中。
- 器件容量会更新,反映可用 PEB 减少一个。
- 如果擦除是正在进行的操作的一部分,UBI 将选择另一个块并继续操作。