Dear Sirs,
I am working on update of my SafeTI implementation.
I would like to add some periodic tests of SRAM to my current implementation. Example below:
/* Run SRAM_ECC_ERROR_PROFILING test on TCMRAM */ retVal = SL_SelfTest_SRAM(SRAM_ECC_ERROR_PROFILING, TRUE, &failInfoTCMRAM);
Unfortunately, it seems it could not work. In SL_SelfTest_SRAM() [sl_self_test.c] there is the switch case structure (line 185). Case 'SRAM_ECC_ERROR_PROFILING' starts at line 375.
case SRAM_ECC_ERROR_FORCING_1BIT: #if defined(_TMS570LS31x_) || defined(_TMS570LS12x_) || defined(_TMS570LS07x_) || defined(_TMS570LS09x_) || defined(_RM48x_) || defined(_RM46x_) || defined(_RM44x_) || defined(_RM42x_) || defined(_TMS570LS04x_) case SRAM_ECC_1BIT_FAULT_INJECTION: case SRAM_ECC_ERROR_PROFILING: case SRAM_ECC_ERROR_PROFILING_FAULT_INJECT: #endif #if defined(_TMS570LC43x_) || defined(_RM57Lx_) /* Clear any previous diagnostic errors status bits [22,21,20,19,12,11,10, 4] - required before trigger */ sl_l2ramwREG->RAMERRSTATUS = L2RAM_RAMERRSTATUS_CLRALL; #endif if(SRAM_ECC_ERROR_FORCING_1BIT == testType) { (void)SL_FLAG_SET(SRAM_ECC_ERROR_FORCING_1BIT); }
As you can see there are 4 cases with one implementation but only for one of them macro SL_FLAG_SET() is being used. Actually information that the specific test is being performed was saved.This flag can be used e.g. for handling exceptions in _exc_data_abort().
Currently, when I call SL_SelfTest_SRAM(SRAM_ECC_ERROR_PROFILING, TRUE, &failInfoTCMRAM) my program goes into _exc_data_abort() and I cannot handle this situation because the proper flag was not set inside SL_SelfTest_SRAM(). How can I handle this test properly?
Thank you.