各位专家、您好!
在实施《安全手册》中提到的 ECC 故障检测 CAN15时、我们遇到了以下问题。
在启用 ECC 的情况下初始化 CAN-RAM 之后。 我们翻转一个位、然后从翻转该位的地址读取。
在检查 ESM 和 ECCDIAG STAT 时、我们注意到单个位错误和双位错误标志被设定。 (例如、对于 CAN1 ESM 1.73和1.21)
结果与 CAN2、3和4类似。
(Q1)这是预期行为吗?
谢谢、此致、
最大
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.
各位专家、您好!
在实施《安全手册》中提到的 ECC 故障检测 CAN15时、我们遇到了以下问题。
在启用 ECC 的情况下初始化 CAN-RAM 之后。 我们翻转一个位、然后从翻转该位的地址读取。
在检查 ESM 和 ECCDIAG STAT 时、我们注意到单个位错误和双位错误标志被设定。 (例如、对于 CAN1 ESM 1.73和1.21)
结果与 CAN2、3和4类似。
(Q1)这是预期行为吗?
谢谢、此致、
最大
您好 Jagadish、
遗憾的是、我无法分享准确的代码、但我可以分享我们采取的步骤:
配置 ECC:
DCAN ECC CS -> ECCMODE = 0x5
DCAN ECC CS -> SBE_EVT_EN = 0xA
DCAN CTL -> PMD = 0xA
自动初始化 RAM
SYS MINITGCR -> MINITGENA = 0xA
SYS MSINENA -> MSIENA = 0x100460
等待 SYS_MSTCGSTAT ->= 0x1
SYS MINITGCR -> MINITGENA = 0x5
获取 CAN RAM ECC 地址:
数据= 0xFFF7DC00 +(2 * 0x2)(对于 DCAN1为0xFFF7DC00)
地址++
翻转数据位
DCAN CTL -> PMD = 0x5
DCAN CTL ->测试= 0x1
DCAN CTL -> Init = 0x1
DCAN 测试-> RDA = 0x1
DCAN ECCDIAG -> ECCDIAG = 0x5
DCAN ECC CS -> SBE_EVT_EN = 0xA
*数据^= 0x1
DCAN CTL -> PMD = 0xA
读取数据并检查错误
Val =数据
DCAN ECCDIAG STAT -> SEFLG 是否设置?
ESM 置位? (DCAN 1将为1.73、在本例中也为1.21)
更正错误...
我们几乎关注 SafeTI 库中测试的实施。
这些步骤是否与您使用的步骤相同?
谢谢、此致、
最大
您好 Jagadish、
正如我在上一篇文章中提到的、我们遵循了可在 SafeTI 库2.4.0中找到的测试实施:
(布尔 SL_SelfTest_CAN (SL_SelfTestType testType、SL_DCAN 实例))
我再次将我们的执行情况与这一执行情况作了比较,在我们采取的步骤中没有发现任何不同。
(Q) 1位 ECC 测试是否仅在您的末尾触发1位错误?
谢谢、此致、
最大
尊敬的 Max:
我了解问题的根本原因。
不应在调试模式下执行此测试、因为调试/挂起模式和 RDA 模式下的消息 RAM 表示不同。 为了执行此测试、我们使用 RDA 模式、因此如果我们在调试模式下执行测试、则两种模式之间的存储器表示会发生变化、因此可能会生成更多 RAM 错误(包括单比特错误和双比特错误)。
因此、为了在没有任何问题的情况下执行该测试、我使用了 SCI、在执行测试后将测试状态传输到 SCI
我的测试代码中的 SCI 输出总共包含10个字节、其中前4个字节是损坏前的字、后4个字节是损坏后的字、后2个字节是"ECCDiagnostic Status Register"

如果有两个字节
00 01 -单位错误
01 00 -双位错误
01 01 -单位和双位错误
下面是执行单个位错误时获得的输出

下面是执行双位错误时获得的输出

您可以在 代码的下一行更改单位和双位错误

这是代码、请仔细阅读、
e2e.ti.com/.../CAN_5F00_ECC_5F00_TEST_5F00_MODE_5F00_1BIT_5F00_LC43.zip
--
谢谢、此致。
Jagadish。
您好 Jagadish、
我将您的 testfunction 与我们的 testfunction 进行了比较、在测试设置和错误触发方式方面找不到任何区别。
我还尝试在未连接调试器的情况下运行测试、并获得相同的结果。 ESM 1.21和1.73用于1位故障注入测试。
假期回来后、我将尝试测试更多的测试。
如果您有任何关于我们如何调试的想法、我希望获得一些提示。
谢谢、此致、
最大