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.

[参考译文] TMS320F28379D:如何为 OTP 存储器计算 ECC?

Guru**** 2558810 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1271823/tms320f28379d-how-is-ecc-calculated-for-otp-memory

器件型号:TMS320F28379D

您好!

OTP 存储器的 ECC 计算算法是什么。

我看到了一些注意事项、对于 OTP 存储器的每128位而言、ECC 的长度为16位。

您能确认一下吗?

闪存 API 中有一些说明、但数据大小不同(64位)。

此致、

Piotr Romaniuk

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

    Piotr、

    这在一定程度上是正确的、一次可以编程的最小大小是针对每64位数据设置的、有8位 ECC 进行编程。  因此、用于128位数据的16位也是正确的、但不是最小值。

    此致!

    马修

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

    Matthew、您好!

    感谢您的澄清。

    我查看了闪存 API 文档中的代码示例(附录、ECC 计算算法)、这是我一直在寻找的算法。
    (函数返回 uint16、但这是因为 CPU 具有字16位长;函数的结果始终为8位长)

    我只能添加 ECC 字中字节顺序的内容。

    例如

    OTP 0x78010 - 0x78014中的4个字(64位)块在0x107102低字节写入 ECC。

      0x78010:  0FFF 0000 FFFF FFFF => ECC = 73
      0x78014:  0FFF 0000 FFFF => ECC = ED

    0x1071000:  FFFF ED73……   

    此致、

    Piotr Romaniuk