【简介】
在之前的帖子(【S32K3XX】XBIC 模块配置使用)简单介绍了S32K3 的XBIC 模块,我在在此基础上来验证XBIC模块的功能。在开始验证之前我们先看下XBIC的寄存器定义,XBIC的寄存器定义也是比较精简的只有如下的四组寄存器定义。

MCR寄存器用于控制监测总线的端口配置,配置XBIC 需要监测CrossBar 的 master 和 slave 端口,对应的寄存器说明如下:

对应的S32DS配置工具也就是对应这个寄存器的配置。

EIR 寄存器可以用于故障注入验证XBIC 的功能是否正常,对应寄存器定义如下。

上述寄存器可知,故障注入需要配置maser 和 slave 的访问路径,及故障注入的信号,对应的故障注入的信号定义如下:

对应的RTD驱动的XBIC故障注入接口就是通过改寄存器注入故障。

本地编写如下的测试代码注入故障。
Xbic_Ip_Init(&Xbic_Config);
Xbic_Ip_IntegrityErrorInjectionConfig(XBIC_0, 2, 0, 0x7);
/* Write data to PRAM */
XIBC_TEST_REG_WRITE32(0x20400020, 0x55aa55aa);
Xbic_Ip_IntegrityErrorInjectionDisable(XBIC_0);
Xbic_Ip_ErrorStatusType errorStatus;
Xbic_Ip_IntegrityCheckerGetErrorStatus(XBIC_0, &errorStatus);
PRINTF("XBIC_0 Error Status: 0x%08X master %d slave %d synError %d address 0x%08X\r\n",
errorStatus.bErrorStatusValid, errorStatus.masterID, errorStatus.slavePort, errorStatus.synError, errorStatus.errAddressDetect)测试代码的故障注入路径如下

对应的信号故障注入信号为。

上述代码通过M70 访问PRAM0 路径注入错误错误注入后读取XBIC的状态寄存器获取的错误状态和注入的一致。

故障注入后,读取寄存器DCM_GPR 状态寄存器 FCCU 已经获取到对应的 异常状态。

对应的XBIC 的状态和异常地址寄存器信息如下跟预期的一致

我要赚赏金
