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:ECC 实施

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1068473/tms570lc4357-ecc-implementation

部件号:TMS570LC4357
“线程: NOWECC”中讨论的其它部件

TI 论坛您好,

我叫 Dai。  我正在调查 TMS570LC4357 SoC 的 ECC 实施情况。 我在 https://www.ti.com/lit/pdf/spna126上阅读本文档 , 遇到了问题。

1.在 nowECC 工具中 TMS570LC4357必须使用什么内存映射选项

阅读 SPNU491D 文档( https://www.ti.com/lit/pdf/spnu491 ),我们需要在 nowECC 工具中指定内存映射选项。 但我无法确定 TMS570LC4357使用哪个选项。 TMS570LC4357具有4MB 闪存,但没有 F021 4MB 选项。 我也无法判断 TMS570LC4357是否必须与 ECC 地址选项一起使用,或者是否必须使用地址选项。 此外,似乎还有-R5选项(Cortex-R5 CPU 功能中的 ECC)。 我们不确定是否必须使用此选项。

请建议在 nowECC 工具中使用 TMS570LC4357的选项。

2. ECC 计算逻辑

2-1。 关于“基于 TMSx70的微控制器中的 ECC 处理(spna126)”,我对 ECC 计算逻辑有疑问。 请参阅第7页上的第126页。

"表3. “无地址的 ECC 值示例”显示“数据高”和“数据低”,宽度为127:64 (高)和63:0 (低),但每个字的实际数据为32位。 这只是一次错误的打印吗? 数据高为63:32,数据低为31:0?

2-2. 对于“表1”中的 ECC 位。 ECC 编码",ECC2的第7位没有"X",但 ECC2的 ADDR_MSW_LSW 为2A9B5_A699A699A699A699,这意味着第7位=1。 您能告诉我们哪一个是正确的,是"X"标记还是 ADDR_MSW_LSW 值?

2-3。 "表3. 如果我们计算的 ECC 值,则会显示“无地址 ECC 值的示例”

954F6D2F 2992A9B6

ECC 将为"AA"

但不管我根据“表1”计算 ECC 的结果如何。 ECC 编码”,结果不是 AA。

“954F6D2F 2992A9B6”的位模式是

   | 7 6 5 4 3 2 1 0
--- -------------
7 95 | 1 0 1 0 1 0 1 0 1
6 4F | 0 1 0 1 1 1 1
5 6D | 0 1 0 1 1 0 1
4 2F | 0 1 0 1 1 1
3 29 | 0 1 0 1 0 1 0 1
2 92 | 1 0 1 0 0 1 0 1 0
1 A9 | 1 0 1 0 1 0 1 0 1
0 B6 | 1 0 1 0 1 0 1 0

如果我们计算 ECC6,

 | 7 6 5 4 3 2 1 0
 |-------------
7 | 1 0 0 1 0 1 0 1
6 |
5 |
4 | 0 1 0 1 1 1
3 | 0 0 1 0 1 0 1
2 |
1 |
0 | 1 0 1 0 1 0 0

然后,我假设多个位的 XOR 是奇偶校验。 因此,ECC6变为“1”

但结果显示 AA = 1 0 1 0 1 0 1 0 0,ECC6为“0”。 我检查了所有其他值,但它们都不匹配。

您能告诉我们我的计算有什么问题吗? 请提供建议。

感谢您的公司。

此致,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="510193" url="~ë/support/微处理器/arm-based 微控制器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1068473/tms570lc4357-ecc-implementation’]1. nowECC 工具中 TMS570LC4357必须使用哪些内存映射选项[/quot]

    表5显示了16MB 的内存映射选项,这是 LC4357设备的正确映射(数据表中的表6.25映射)。 因此 -f021 16M_noadd 或 -f021 16M_Add 应用于 LC43x 设备。

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

    闪存的 ECC 也会对地址进行说明。 如果地址中有任何错误,则允许生成双位错误。 您需要使用“16M_Add”。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="510193" url="~ë/support/微处理器/arm-based 微控制器-组/基于 ARM 的微控制器/f/基于 ARM 的微控制器- forum/1068473/tms570lc4357-ecc-implementation "],这是否只是错误的打印? 数据高为63:32,数据低为31:0?

    每64位数据就有一个8位 ECC。 你是对的。 它应该是[63:32]和[31:0]。

    [引用 userid="510193" url="~ë/support/微处理器/arm-based 微控制器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1068473/tms570lc4357-ecc-implementation’]2-2。 对于“表1”中的 ECC 位。 ECC 编码",ECC2的第7位没有"X",但 ECC2的 ADDR_MSW_LSW 为2A9B5_A699A699A699A699,这意味着第7位=1。 您能告诉我们哪一个是正确的,“X”标记或 ADDR_MSW_LSW 值吗?

    请使用 表7-1。 设备 TRM 中 BE32设备的 ECC 编码。 本应用说明中的表格可能不准确。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="510193" url="~ë/support/微控制器/arm-based 微控制器-组/基于 ARM 的微控制器/f/基于 ARM 的微控制器- forum/1068473/tms570lc4357-ecc-implementation "]

    2-3。 "表3. 如果我们计算的 ECC 值,则会显示“无地址 ECC 值的示例”

    954F6D2F 2992A9B6

    ECC 将为"AA"

    [/引用]

    ECC = 0xAA 正确。

    0x954F6D2F_2992A9B6 XOR 0xFF0000FFFFFF_FFF0000FF (ECC 位6的公式)= 0x6A4F_6DD0_D692_A949 --> 1为32 -->偶校验为0  

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

    感谢你的回复。 现在我已经了解了。

    Spna126表1中 ECC5和 ECC0的“CPU 奇偶校验”字段为空。 我应该使用哪种奇偶校验?

    对于 ECC1,  

    0x954F6D2F_2992A9B6 XOR 0x15571557_15571557 = 0x8018_7878_3CC5_BCE1 --> 1号为28 -->偶校验为0,与 0xAA (0b10101010)不匹配

    对于 ECC3,  

    0x954F6D2F_2992A9B6 XOR 0x39E338E3_38E3 = 0xACACC_55CC_1171_9155 --> 1为29 -->奇偶校验为0,与 0xAA (0b10101010)不匹配

    对于 ECC7,  

    0x954F6D2F_2992A9B6 XOR 0xFFFF00_FF0000FF = 0x95B0_922F_D692_A949 --> 1为30 -->偶校验为0,与  0xAA (0b10101010)不匹配

    您能解释一下上述计算有什么问题吗?

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

    查看另一个线程 https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/850990/tms570lc4357-ecc-calculation-issue/3161855?tisearch=e2e-sitesearch&keymatch=pyecc#3161855 ,我认为可以正确计算 ECC。  

    我用过

    ECC0:B4D1B4D14B2E4B2E,偶数
    ECC1:155715571557,偶数
    ECC2:A699A699A699A699A699,ODD
    ECC3:38E338E338E338E3,ODD
    ECC4:C0FCC0FCC0FCC0FC,ODD
    ECC5:FF00FF00FF00FF00FF00,奇数
    ECC6:FF0000FFFFFF0000FFFFFF, ODD
    ECC7:00FFFF00FF0000FF,奇数

    然后计算每个位的偶数/奇数奇偶校验。