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.

[参考译文] TMS320F28377D-ECC:使用上部和下部块的闪存 EP 逻辑功能。

Guru**** 2451970 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1262687/tms320f28377d-ep-flash-ecc-logic-functionality-using-the-upper-and-lower-block

器件型号:TMS320F28377D-TMS320F28375D-DSP EP

您好!

出于安全原因、我将着手测试闪存 ECC 逻辑功能、为此、我将遵循源代码 SDL_EX_FLASH_ECC_TEST 中的示例。

一切都运行良好、但我对测试期间的上下64位 SECDED 块的设置有一个疑问、这在我看来是没有道理的。

TRM 提到、一次只能测试一个 SECDED 模块(在两个工作在读取128位数据的低64位和高64位上的 SECDED 模块中)。

因此、我的理解是、在测试低块时、63:0范围内的一个单一位错误应该会 触发一个错误计数、但是如果一个单一位错误被注入到高块127:64、而在测试低块时、这个错误不应该触发一个错误计数。 但是、似乎确实如此。

我想了解、如果无论错误位位于128位数据中的什么位置、都检测到错误、那么使用两个块有什么作用。

测试上部和下部模块是否确实重要、或者只有一个测试足以证明 SECDED 模块的功能?

谢谢!

劳伦特

 

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

    Laurent,

    通过128位总线读取闪存和 OTP 存储器、但 SECDED 覆盖在64位级别。  因此、我们需要两个 SECDED 模块并行检查 ECC 是否存在全部128个位、以避免故障检测延迟。

    请记住、SINGLE_ERR_ADDR_LOW 和 SINGLE_ERR_ADDR_HIGH (或这些寄存器的 UNC 版本)可用于确定 ECC 故障是在较低或较高的64位中发生、但正如您所说的、其中任何一个错误都会触发通用 ISR。

    此致!

    马修