MPC5744P IVOR1 机器检查处理程序在 RTOS 和裸机上未触发不可纠正的 FLASH ECC 错误您好,我正在使用 SDK 2.1 中的FLASH_ECC_Error_Injection_MPC5744P演示项目来测试 FLASH ECC 故障处理。
- 在裸机 SDK 示例中:调用 Generate_noncorrectable_FLASH_ECC_error 后,内核正确地捕获了故障,并按预期进入了 Machine_check_handler(IVOR1 Handler)。
- 将相同的 ECC 注入逻辑移植到我的基于 RTOS 的项目中后:没有发生机器检查异常,代码也从未跳转到 Machine_check_handler。
- 已在启动文件中完全移植并定义了 IVOR1_Handler。与裸机演示一致的汇编文件;
- 已实现完整的 FCCU 报警中断配置,但注入不可纠正的 FLASH ECC 错误时,也不会触发 FCCU 报警中断。
- 要使机器检查处理程序 (IVOR1) 能够处理 FLASH 不可纠正的 ECC 错误,需要哪些强制性的硬件/寄存器配置?
- 在实时操作系统 (RTOS) 下运行 ECC 故障注入和机器检查异常处理时,是否存在特殊考虑或限制?
- 能否提供一份分步调试/故障排除工作流程,以查找此机器检查异常缺失的根本原因?
Re: MPC5744P IVOR1 Machine Check Handler not hit with uncorrectable FLASH ECC error on RTOS, baremet我不了解提到的例子,我猜它是我在应用笔记中使用 GHS 编译器编写的移植版本。
https://www.nxp.com/docs/en/application-note/AN13179.pdf
https://www.nxp.com/docs/en/application-note-software/AN13179SW.zip
如果 RTOS 影响了行为,那么就需要调查它对 MSR 寄存器做了什么。请注意第五章。
您还可以查看第 8 节以了解 ECC 处理方法。