Tool/software: Code Composer Studio
I used TMS570LC4357 chip. I make firmware based on Ti Safety Library.
I receive guidance by our co-worker question (the link : https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/851508/3149793?tisearch=e2e-sitesearch&keymatch=tms570lc4357%252520esm#3149793)
I think the question checked [resoloved] the other answer is not come. So I request same question again to know accurately. The problem and question as follows.
I show the problem ESM Group 3 error (double bit ecc) in Power on/off test(plug on/off) sometimes. Then, the firmware is stopped in the code as follows.
if ((esmREG->SR1[2]) != 0U) {
while(1);
}
I find the ESM Group 3 error not occurred when I change the initialization sequence.
The original sequence as follows,
void _c_int00(void)
{
SL_Init_R5Registers();
SL_Init_StackPointers();
_SL_Init_EnableEventExport();
SL_Init_Memory(RAMTYPE_RAM);
resetReason = SL_Init_ResetReason();
....
....
}
I change the init sequence like this : (SL_Init_Memory(RAMTYPE_RAM) first and _SL_Init_EnableEventExport() later)
void _c_int00(void)
{
SL_Init_R5Registers();
SL_Init_StackPointers();
SL_Init_Memory(RAMTYPE_RAM);
_SL_Init_EnableEventExport();
resetReason = SL_Init_ResetReason();
....
....
}
So, I want to know about these.
1. Is The sequence change no problem?
2. why If _SL_Init_EnableEventExport(); is first set, SL_Init_Memory(RAMTYPE_RAM); make double ecc error sometimes.
Regards,
Minwoo