尊敬的 BU 专家:
我向我的客户询问此问题。
在其应用程序中、他们在引导加载程序中配置了 IMUL-10、FMUL-0、DIV-2、并在应用程序中配置了 IMUL-5、FMUL-0、DIV-1。 他们发现系统将由 NMIWD 复位。 调试后、发现它由闪存 ECC 错误导致、并且在 PLL 初始化代码中执行 ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 0;和 ClkCfgRegs.SYSPLLMULT.all = temp_syspllmult;时发生该错误。 因为它们使用的是 F28004x 的旧版本驱动程序。 他们没有在上述2个代码之间插入以下60个周期延迟。

添加延迟后、系统可以正常工作。 但客户需要 TI 回答以下问题、 :
1) 1)为什么需要此延迟? 当不添加此延迟时、为什么闪存会报告 ECC 错误? 这背后的硬件机制是什么?
2)在早期设计中、引导加载程序和应用程序都 配置了 IMUL-10、FMUL-0、DIV-2、并且它们强制应用程序执行 ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 0;以及 ClkCfgRegs.SYSPLLMULT.all = temp_syspllmult。 但在这种情况下、未发生错误或复位。 需要解释。

此致、
将会