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.   摘要
  3.   商标
  4. 1简介
  5. 2坏块管理
    1. 2.1 块故障
    2. 2.2 修复坏块的可行性
  6. 3ROM 引导加载程序中的坏块管理
  7. 4TITM MCU+ SDK 中的坏块管理
    1. 4.1 闪存读取操作流程
    2. 4.2 闪存写入操作流程
    3. 4.3 闪存擦除操作流程
  8. 5TITM 处理器 SDK 中的坏块管理
    1. 5.1 闪存读取操作流程
    2. 5.2 闪存写入操作流程
    3. 5.3 闪存擦除操作流程
  9. 6总结
  10. 7参考资料

闪存写入操作流程

  1. 参数验证:
    • 写入操作会验证偏移量是否与页对齐(这是串行 NAND 闪存的必要条件),并验证偏移量加上长度是否不超过闪存器件的容量。
  2. 地址计算:
    • 驱动程序根据字节偏移量计算起始页地址和块号。
  3. 正常块的位置:
    • 如果启用了坏块管理,则 OSPI 驱动程序会使用坏块列表,从计算出的块号开始查找下一个正常块。如果目标块被标记为坏块,系统将自动跳转到下一个正常块。
  4. 逐页写入。
  5. 程序故障处理:
    • 如果程序状态检查显示失败:
      • 则通过将坏块标记写入备用区域,将该块标记为坏块。
      • 更新内存中的坏块列表,将该块标记为坏块。
      • 如果写入操作失败,则返回写入错误。
  6. 地址递增:
    • 每次页面写入成功后,驱动程序都会递增页面地址。当跨越块边界时,驱动程序会检查坏块列表,并在必要时跳转到下一个正常块。
  7. 完成:
    • 写入操作会一直持续,直到写入所有数据。成功编程所有页面后,驱动程序返回成功。
 闪存写入流程图 4-3 闪存写入流程