TMS570LS1114上电过程中偶发PLL2 clock source 开启失败,导致程序在HalCoGen生成的system.c文件中Errata SYS#46解决方案部分进入while()死循环
/* Work Around for Errata SYS#46:
*
* Errata Description:
* Clock Source Switching Not Qualified with Clock Source Enable And Clock Source Valid
* Workaround:
* Always check the CSDIS register to make sure the clock source is turned on and check
* the CSVSTAT register to make sure the clock source is valid. Then write to GHVSRC to switch the clock.
*/
/** - Wait for until clocks are locked */
SYS_CSVSTAT = systemREG1->CSVSTAT;
SYS_CSDIS = systemREG1->CSDIS;
while ((SYS_CSVSTAT & ((SYS_CSDIS ^ 0xFFU) & 0xFFU)) != ((SYS_CSDIS ^ 0xFFU) & 0xFFU))
{
SYS_CSVSTAT = systemREG1->CSVSTAT;
SYS_CSDIS = systemREG1->CSDIS;
} /* Wait */
上述代码Errata SYS#46解决方案只是通过寄存器CSDIS和CSVSTAT检查时钟源是否开启,如果开启失败,只会导致程序陷入死循环一直等待开启,无法上电,并不能有效解决问题,
请问有人遇到过相同的问题吗?什么原因可能导致PLL2 clock source偶发的开启失败?应该怎么避免并解决这种问题呢?