My SRAM_ECC_1BIT_FAULT_INJECTION test is failing because this condition evaluates to false:
(((uint32)(1u << ESM_G1ERR_B0TCM_CORRERR) | (uint32)(1u << ESM_G1ERR_B1TCM_CORRERR))
== (sl_esmREG->SR1[0] & ((uint32)(1u << ESM_G1ERR_B0TCM_CORRERR) | (uint32)(1u << ESM_G1ERR_B1TCM_CORRERR))))
This makes the condition below to check if the single bit errors have been generated for both banks also false and hence ST_FAIL. How do I find out what the problem is?
/* Check if the single bit errors have been generated for both banks */
if ((TCRAM_RAMERRSTATUS_ADDR_SERR == (uint32)(sl_tcram1REG->RAMERRSTATUS & TCRAM_RAMERRSTATUS_ADDR_SERR))
/*SAFETYMCUSW 96 S MR: 6.2,10.1,10.2,12.1,12.6 <APPROVED> Comment_25*/
&& ((TCRAM_RAMERRSTATUS_ADDR_SERR == (uint32)(sl_tcram2REG->RAMERRSTATUS & TCRAM_RAMERRSTATUS_ADDR_SERR)))
&& (((uint32)(1u << ESM_G1ERR_B0TCM_CORRERR) | (uint32)(1u << ESM_G1ERR_B1TCM_CORRERR))
== (sl_esmREG->SR1[0] & ((uint32)(1u << ESM_G1ERR_B0TCM_CORRERR) | (uint32)(1u << ESM_G1ERR_B1TCM_CORRERR))))){
if( ((SRAM_ECC_ERROR_FORCING_1BIT==testType) &&
(sl_tcram2REG->RAMSERRADDR == ((uint32)&sramEccTestBuff[1] & ((uint32)0x0003FFFFU)))) || (SRAM_ECC_ERROR_PROFILING==testType)) {
*sram_stResult = ST_PASS;
}else{
*sram_stResult = ST_FAIL;
}
sl_tcram1REG->RAMOCCUR = 0x00000000u;
sl_tcram2REG->RAMOCCUR = 0x00000000u;
} else {
*sram_stResult = ST_FAIL;
}