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