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.

[参考译文] TMS570LC4357:如何计算诊断RAM12,RAM16和17的ECC

Guru**** 2468460 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1086973/tms570lc4357-how-to-calculate-ecc-for-diagnostics-ram12-ram16-and-17

部件号:TMS570LC4357

各位专家,诊断程序RAM12,RAM16和RAM17都需要ECC值进行测试。

在查看TI安全库时,给出了一些值,例如0x0U的ECC为0xCU,但没有解释如何计算该值

(Q1)您能否举例说明如何计算RAM中64位值的ECC值?

谢谢,顺祝商祺!
最大

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

    您好,Max,

    您可以使用用于闪存的ECC表:表7-1。 BE32设备的ECC编码

    但不使用地址部分。

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

    QJ:您好!

    我不理解如何使用表7-1,也没有给出解释。

    请说明如何使用表7-1吗?

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

    QJ:您好!

    我想我理解这个桌子现在是如何工作的。 请您确认以下内容是否正确?

    如果您有64位字,其中每个位为1,并且要计算ECC位7和2,则必须执行以下操作

    用于ECC位7

    ecc[7]=位55 ^ 位54 ^ 位53 ^ 位52 ^ 位51 ^ 位50 ^ 位49 ^ 位48 ^ 位47 ^ 位46 ^ 位45 ^ 位44 ^ 位43 ^ 位42 ^ 位41 ^ 位40 ^ 位31 ^ 位30 ^ 位29 ^ 位28 ^ 位27 ^ 位26 ^ 位25 ^ 位24 ^  位7 ^ 位6 ^ 位5 ^ 位4 ^ 位3 ^ 位2 ^ 位1 ^ 位0
    ECC[7]= 0

    对于ECC位3,我们必须使用奇偶校验=1的XOR:

    ECC[3]= (位55 ^ 位54 ^ 位53 ^ 位52 ^ 位51 ^ 位50 ^ 位49 ^ 位48 ^ 位47 ^ 位46 ^ 位45 ^ 位44 ^ 位43 ^ 位42 ^ 位41 ^ 位40 ^ 位31 ^ 位30 ^ 位29 ^ 位28 ^ 位27 ^ 位26 ^ 位25 ^ 位24 ^ 位7 ^  位6 ^ 位5 ^ 位4 ^ 位3 ^ 位2 ^ 位1 ^ 位0)^奇偶校验
    ECC[3]= 1

    使用整个表计算0xFFFF FFFF FFFF的ECC:ECC将为0x51。

    谢谢,顺祝商祺!
    最大

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

    您好,Max,

    每个ECC位都是所有32个数据位(标记为"x")和奇偶校验位的XOR。

    Parity=Even --> ECC =(32个数据位的XOR) XOR 0 (奇偶校验)= 32个数据位的XOR

    Parity=ODD -->  ECC =(32个数据位的XOR) XOR 1 (奇偶校验)

    对于data=0xFFFFFF_FFFFFFF_FFFF

    32个数据位的XOR =0

    因此,ECC[7]=0;

       ECC[6]= 0;

       ECC[5]= 0;

       ECC[4]= 0;

       ECC[3]= 0 XOR 1 = 1;

       ECC[2]= 0 XOR 1=1;

       ECC[1]= 0;

       ECC[0]=0;

    ECC值应为0x0C

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

    谢谢你。

    你的澄清帮助我发现他在我的计算中有错误。 现在我得到了相同的值。