I'm trying to run the following test on startup from the SafeTI library:
bool runSafeTiPsconTests() { bool slRet = false; SL_SelfTest_Result failInfoPscon = ST_FAIL; /* PSCON Failure information. */ /* Run PSCON self test. */ //! triggers some sort of failure slRet = SL_SelfTest_PSCON(PSCON_SELF_TEST, true, &failInfoPscon); if ( (slRet != true) || (failInfoPscon != ST_PASS) ) { return false; } /* Stop PBIST Execution. */ slRet = SL_SelfTest_PBIST_StopExec(); if (slRet != true) { return false; } //Run other tests here... /* All tests passed. */ return true; } // All tests pass, jumps back to __c_int00 here?
The test passes when I step through it, however, it is somehow triggering a reset back to the _c_int00 startup routine as soon as the test function finishes. I've confirmed that it's PSCON_SELF_TEST that triggers this behaviour by commenting out other tests in the function. I did some digging through the core registers and the docs but wasn't able to find any reason why this would happen. Any ideas would be appreciated!