Other Parts Discussed in Thread: HALCOGEN
We're trying to bring up a LAUNCHXL-RM42. With the standard sys_startup.c provided by HALCoGen, the MCU hangs in _c_int00 because a bit in ESMSR3 is set. It hangs in this for loop:
if ((esmREG->SR1[2]) != 0U)
{
/* USER CODE BEGIN (24) */
/* USER CODE END */
/*SAFETYMCUSW 5 C MR:NA <APPROVED> "for(;;) can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
/*SAFETYMCUSW 26 S MR:NA <APPROVED> "for(;;) can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
/*SAFETYMCUSW 28 D MR:NA <APPROVED> "for(;;) can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
for(;;)
{
}/* Wait */
/* USER CODE BEGIN (25) */
/* USER CODE END */
}
The value of ESMSR3 is 0x00000008, which indicates an ESM Group 3 Channel 3 error, "RAM even bank (B0TCM) - ECC uncorrectable error".
I modified the debug configuration by disabling Target > Auto Run and Launch Options > Auto Run Options > On program load or restart and observed that even before any code has run, the value of ESMSR3 is 0x00000008.
This test project was created following the directions in How to Create A HALCoGen-Based Project For CCS. I enabled only the "GIO" module in HALCoGen and did not change any module settings. I did not add any user code.
I'd like to know why the MCU is signaling an ECC error even before any code has run. Is seems unlikely that I have a bad chip. We would prefer not to ignore ECC errors since this is for a safety-critical application.
Thanks for your help,
Sam Birch
Innovative Electronics, LLC


