这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【S32K3XX】EIM故障注入模块使用

共1条 1/1 1 跳转至

【S32K3XX】EIM故障注入模块使用

高工
2025-12-23 13:31:19     打赏

【简介】

在此贴中(【S32K3】S32K3功能安全 FCCU 模块配置使用  )有介绍触发FCCU的异常后会进入,FCCU_ALARM_ISR 的中断处理函数。通常程序在运行过程中是不容易产生FCCU的异常错误例(如RAM的ECC错误),那我们如何验证FCCU的异常处理流程,我们可以使用芯片的EIM模块(Error Injection Module (EIM)来注入错误来验证FCCU的异常处理逻辑。

以下是EIM 的框图,可以在RAM 阵列的访问路径上翻转指定 的bit 从而触发FCCU异常事件。

image.png

我们可以使用eMCEM 的驱动接口往特定的channle 中注入错误来触发FCCU 的异常事件。

image.png

结合上述框图的说明和错误注入channel 的说明,整个错误注入的流程还是很清晰的。对应的寄存器只要如下:

EIMCR->GEIEN(故障注入的全局开关) 

image.png

错误注入侧channel 使能寄存器

image.png

以下的SPD的驱动代码对应上述两个寄存器的操作处理。

故障注入使能函数:

image.png

故障注入关闭函数:

image.png

对应的channel 错误注入翻转mask寄存器

image.png

以下函数对应错误注入的翻转bit

image.png

在S32DS 的配置中我们可以针对FCCU的异常事件添加call  back 函数来处理对应的异常事件,我们针对RAM0/RAM1 的添加异常callback 函数 image.png

我们编写如下测试代码,通过EIM往PRAM0 中注入两bit的错误数据错误。

        eMcem_SetupInjectionChannel(EMCEM_EIM_CH_0, 0,1);
        eMcem_InjectFault(EMCEM_EIM_CH_0);

注入错误后FCCU 的alarm 中断函数按照预期的被调用,并调用了我们上面实现的回调函数。

image.png

异常检出后配置触发动作为重启,重启后可以读取到本次的异常的重启原因为FCCU重启。

image.png

           


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]