我已将诊断库源代码集成到当前工程中、 仅 在 DCAN1 RAM 上运行 SL_SelfTest_CAN CAN_ECC_TEST_MODE_1位测试。 我遇到的问题是、当通过读取损坏的数据位置来生成1位故障时、通常会使用 DEFLG 而不是 DCAN1 ECC CS 寄存器中的 SEFLG 来标记发生的故障(尽管有时会使用 SEFLG 进行正确标记)。 下面是我的启动过程中的伪代码。 非常感谢有关如何纠正这一问题的任何指导。 谢谢!
初始化内核寄存器
初始化堆栈指针
启用到外设的时钟并释放外设复位
确定最后一次复位的源
初始化存储器
启用 CPU 事件导出
检查在加电期间是否有 ESM 组3错误
初始化系统-时钟、闪存、 器件级多路复用和 I/O 多路复用设置
备份 DCAN1控制寄存器
清除 DCAN1控制寄存器中的 CAN_INIT_BIT、并启用 ECC
在 DCAN1上运行 SL_SelfTest_CAN CAN_ECC_TEST_MODE_1位测试
恢复 DCAN1控制寄存器






