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:TRM 中的 TMS ECC VIM RAM 测试过程不能通过破坏一个数据位来工作

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/916784/tms570lc4357-tms-ecc-vim-ram-test-procedure-in-trm-doesn-t-work-by-corrupting-one-data-bit

器件型号:TMS570LC4357

您好!

我们希望通过 破坏 TRM p. 675中描述的数据中的单个位来测试 ECC VIM RAM 机制

"应使用以下序列将故障注入数据位并测试 ECC 检查功能。
1、在保持 ECCENA 激活的同时、用所需的模式写入 VIM RAM 的数据位置。 。
ECC 位将与数据位一起自动初始化。
2.通过在 ECCCTRL 寄存器中设置 ECCENA=0来禁用 ECC。 在这种模式下、写入数据位不会
自动更新 ECC 位。
3.在这种模式下,可以使用以下任何方法来破坏数据位。
•读取数据位、翻转一位并写回
4.根据所创建的损坏类型,读回数据位并检查校正错误
(单位错误或双位错误或无错误)。
5、读取 UERRADDR 和 SBERRADDR 寄存器、并检查地址捕获是否正确"

当我们尝试此过程时、数据上的单个位错误不会被纠正、 SBER 位= 0'。

第一个问题

在第3步和第4步之间、我们认为 TRM 中存在错误、必须激活 ECC_ENA 以验证 SBER 位是否 设置正确、错误为1位。 您可以确认吗?

第二个问题:

当我们激活  ECC_ENA 位寄存器(在步骤3和4之间)时、 会检测到单个位错误和双位错误(SBER 位= 1 且  UERR 位= 1)。

我们不明白为什么设置 UERR 位? 根据 TRM、当我们仅破坏数据中的1位时、它仅是单位错误机制、这一机制起作用、而不是同时起作用。 您可以确认吗?

第3个问题

您是否有一个在 VIM RAM 区域中破坏1个数据位和2个数据位的测试示例?

此致、

François μ A  

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

     您好 François、

    [引用 USER="user5896989">在步骤3和4之间、我们认为 TRM 中存在错误、必须激活 ECC_ENA 以验证 SBER 位是否 正确设置、错误1位。 您能确认吗?

    QJ>您回答正确。 在读取修改后的数据之前、应启用 VIM ECC。 否则未检测到 ECC 错误。

    [引用 user5896989]\n 我们不明白为什么设置 UERR 位? 根据 TRM、当我们仅破坏数据中的1位时、它仅是单位错误机制、这一机制起作用、而不是同时起作用。 您能确认吗?

    VIM RAM 中每32位 ISR 地址有7位 ECC。 VIM ECC 生成是根据 TRM 中表19-1和19-2所示的 ECC 综合征表完成的。

    QJ>从这个 ECC 综合表中、翻转 VIM 数据的位0将影响 ECC 值的位6、位[3:0]。 例如、DATA=0x00004EC0 -> ECC 值= 0x11、翻转位0后、数据= 0x00004EC1 -> ECC 值= 0x69 (5位翻转)

    [引用 USER="user5896989"]您是否有一个测试示例,该示例破坏了 VIM RAM 区域上的1个数据位和2个数据位?

    QJ>我没有示例。 我认为您的测试代码可以正常工作。 要生成1位或2位 ECC 错误、我更喜欢切换 ECC 值(启用 ECC 测试模式)。