This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] 【常见问题解答】AM62A7:P-FAIL 和 E-FAIL 错误块标记

Guru**** 2573915 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1573655/faq-am62a7-p-fail-and-e-fail-bad-block-markers

器件型号:AM62A7


工具/软件:

目前在 AM62A TI EVM 上、我们有一个来自 Winbond 的 OSPI 串行 NAND 闪存。  

闪存为:  W35N01JWTBAG

让我们了解一下如何相对于一些特定的寄存器完成 BBM。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    了解我们的 MCU+ SDK 产品中如何以及在何处实现 BBM(坏块管理):  【常见问题解答】AM62A7:NAND 闪存器件的坏块实现 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于擦除 API:

    我看到用户将块编号传递给函数、然后该函数找到下一个要擦除的良好块。 例如、如果传递的当前块为块编号 5、则假设存在一个场景、其中块如下所示:

    … 、 5、6 、7、8、 9、10、  (红色表示坏块,绿色表示好块)。

    然后、擦除功能将擦除块编号 7。 在擦除块 7 时、有两种情况:

    • 场景 1:擦除块 7 时、擦除成功、我们退出函数。
    • 场景 2:在擦除块 7 时、块会出现故障、因此擦除不成功、所以我们现在将块 7 标记为错误、因此尝试擦除块 8。
    • 这会在循环中持续、直到我们擦除一个正常块或达到最大块计数的末尾。

    对于写入 API:

    用户将要写入写入写入函数的偏移量和字节数传递给该函数。 根据两个输入、计算块编号。 假设块编号为 5、并假设与上述情况相同:

    … 、 5、6 、7、8、 9、10、  (红色表示坏块,绿色表示好块)。

    在本注释中、要写入的块将是第 7 个 1。 有两种情况:

    • 场景 1:写入成功、我们退出函数。
    • 场景 2:如果写入时出现故障、则会将该块标记为 Bad 并退出函数。 这表示写入失败。

    请注意、在擦除或写入 API 内部、我们表示块已损坏的方式是读取 E-Fail 和 P-FAIL 寄存器的状态。

    对于闪存:  W35N01JWTBAG

    就擦除而言、会检查 E-FAIL 位。

    请在以下路径中浏览文件内容: C:\ti\mcu_plus_sdk_am62ax_11_01_00_16\source\board\.meta\flash\serialFlash\W35N01JWTBAG.json

    在这里您会遇到两个变量/参数:“srProgStatus"和“和“srEraseStatus"。“。

    它们的值 3 和 2 分别表示位号。 该值与上面的数据表片段中显示的值匹配。

    当我们执行擦除操作时、 Flash_nandOspiCheckEraseStatus 负责检查 E-FAIL 位。 如果它检查并发现 E-Fail 位为 1、则将该块标记为错误。

    同样、对于写入/编程操作、 Flash_nandOspiCheckProgStatus 负责检查 P-FAIL 位。 如果设置为 1、则将块标记为坏。