Other Parts Discussed in Thread: HALCOGEN
Tool/software: Code Composer Studio
Similar to the question posed in this thread: https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/857006?CCS-TMS570LC4357-TMS570LC4357-PBIST-on-L2RAM-failing
The code hangs in the "while (1)" of the code area:#if PBIST_L2RAM_ENABLE == 1
{
/* Run PBIST on L2RAM */
SL_SelfTest_PBIST( PBIST_EXECUTE,
PBIST_RAMGROUP_29_L2RAMW |
PBIST_RAMGROUP_30_L2RAMW,
PBISTALGO_MARCH13N_1PORT);
while
((systemREG1->MSTCGSTAT & 0x1u) == 0x0u);
if
((pbistREG->FSRF0 == 0u) && (pbistREG->FSRF1 == 0u))
{
/* PBIST pass */
}
else
{
/* PBIST fail */
while
(1);
}
SL_SelfTest_PBIST_StopExec();
_memInit_();
/* Clear VIM pending interrupt request (Channel 85 - PBIST Done) */
vimREG->INTREQ2 = 0x00200000;
}
#endif
This was pulled from the example of the SafeTI 2.4.0.
This code does pass when in debug mode, but not when running in release.
There are some differences in the samples on when the call to "_memInit_();" should take place. Most note that it should take place soon after boot to prevent errors, but this code shows a call to _memInit_(); after the BPIST test. When should this happen?
Also, should the call to "SL_Init_Memory(RAMTYPE_RAM);" happen instead of _memInit(); when using the SafeTI library?