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.

[参考译文] TMS320F2800157-Q1:如何查找闪存 ECC 相关寄存器?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1647367/tms320f2800157-q1-how-to-find-the-flash-ecc-related-register

器件型号: TMS320F2800157-Q1

您好的团队、

我向我的客户询问这个问题。

我们的 TRM 中介绍了闪存 single-bit 错误、但我找不到它提到的寄存器、也找不到 SDK 的 hw_flash.h 文件中的寄存器定义

image.png

客户正在进行一位错误注入测试(不使用 ECC 测试模式)、他们会发现在注入一位错误并读取后、错误计数增加、但读回的数据自动不正确、您能帮助提出可能导致这种情况的原因吗?

BRS

Shuqing

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

    您好的团队、

    对此有任何更新?

    在客户的功能安全设计中、它将执行 ECC 测试(按照我们的 SDL 演示:sdl_ex_flash_ecc_test) 、成功通过此 ECC 测试。 然后、它们需要特意注入 single-bit 错误、并读回以检查数据是否正确。

    他们的测试显示在下面:他们将首先擦除它

    读取此地址后、他们可以看到器件检测到 single-bit 错误 CERRCNT Add1、但不会自动校正数据 (FLASH_DATA)。

    ECC 已启用、为什么不更正?

    如果因为他们的测试操作错误、您能告诉我如何注入 single-bit 错误并对其进行测试吗?

    BRS

    Shuqing

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

    您好、Shuqing、

    客户代码是否在发出闪存操作后通过调用 Fapi_getFsmStatus () 直到完成来等待其完成? 不应在正在进行活动操作的闪存组上进行任何闪存访问。

    此致、

    Alex

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

    您好 Alex、

    我会让客户等待一段时间、然后再读回

    您是否删除了答案?

    此外、我尝试在不擦除的情况下对相同地址进行编程、这是无法正常工作的、闪存 API 将返回错误

    您能帮助检查任何其他方法来测试 ECC 吗?(除了使用 ECC 测试模式之外)

    BRS

    Shuqing

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

    您好、Shuqing、

    对延迟响应表示歉意。 我看到 Data+ECC = 0xFFFF 条件不适用后、修正了上一个答案。

    这里的 ECC 逻辑按预期工作。 使用 64 位闪存和 8 位 ECC 进行 ECC 比较。 错误寄存器指示错误发生在第 18 位位置、即 0xEFFF 之后的字中、只有 16 位。 这意味着当读取闪存时、该值会校正为 0xFFFB 0xFFF。 客户可以通过使用 32 位或 64 位指针读取闪存来在其代码中观察到这一点。

    此致、

    Alex