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.
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”。 我检查了所有其他值,但它们都不匹配。
您能告诉我们我的计算有什么问题吗? 请提供建议。
感谢您的公司。
此致,
戴
表5显示了16MB 的内存映射选项,这是 LC4357设备的正确映射(数据表中的表6.25映射)。 因此 -f021 16M_noadd 或 -f021 16M_Add 应用于 LC43x 设备。
闪存的 ECC 也会对地址进行说明。 如果地址中有任何错误,则允许生成双位错误。 您需要使用“16M_Add”。
每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 编码。 本应用说明中的表格可能不准确。
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)不匹配
您能解释一下上述计算有什么问题吗?
我用过
ECC0:B4D1B4D14B2E4B2E,偶数
ECC1:155715571557,偶数
ECC2:A699A699A699A699A699,ODD
ECC3:38E338E338E338E3,ODD
ECC4:C0FCC0FCC0FCC0FC,ODD
ECC5:FF00FF00FF00FF00FF00,奇数
ECC6:FF0000FFFFFF0000FFFFFF, ODD
ECC7:00FFFF00FF0000FF,奇数
然后计算每个位的偶数/奇数奇偶校验。