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; }