Hi team:
we are beginning to integrate into our project the safety diagnostic library ver 2.4.0. The demo project TMS570LS1227_NoOs has been built and run correctly. When we added the safety diagnostic library into our project (with uc/OS-II) , then there is an error when called:
retVal = SL_SelfTest_SRAM(SRAM_ECC_ERROR_FORCING_2BIT, TRUE, &failInfoTCMRAM);
after run instruction:
ramread64 = sramEccTestBuff[2]; //line 278 in sl_selftest.c
the program jump to _excpt_vec_abort_data correctly, and then:
if (((TCRAM_RAMCTRL_ECCWREN == (sl_tcram1REG->RAMCTRL & TCRAM_RAMCTRL_ECCWREN))
||(TCRAM_RAMCTRL_ECCWREN == (sl_tcram2REG->RAMCTRL & TCRAM_RAMCTRL_ECCWREN)))
&&(TRUE == SL_FLAG_GET(SRAM_ECC_ERROR_FORCING_2BIT))){
/* So looks like writes to ECC region is enabled, check if the error address is in the test buffer range */
maskDAbort = TRUE;
};
but after that, program jump to this _except_vec_abort_data() in the infinite loop, nERROR pin is active low.
Refence 《uC.OS-II With ARM-Cortex-R And HALCoGen From Texas Instruments》, label "Interrupts" config like this:
label "R4-MPU-PMU" label config like this:
Add exceptions here :
Do you have an idea about what we might have been wrong?
Thank you & Best Regards