最近我们采用NUC972开发的产品遇到随机问题,有时能正常启动,有时无法启动,希望协助解决。 经过定位发现问题出现在SD初始化。我们产品启动流程如下: SPI启动->初始化SD卡->从SD卡读取程序到DRAM->跳转到DRAM运行->重新初始化SD卡->.... 经过调试定位发现无法启动的时候实际上是卡在了第二次初始化SD卡,发送CMD51命令的时候一直在循环等待SDH_CTL_DIEN完成。在此之前获取容量等操作都是正常的,只有发送CMD51命名获取SCR寄存器的时候无法完成,怀疑是DMAC的问题。
如果把程序直接通过debug下载到DRAM运行都是正常的,只有通过SPI启动,从SD卡读取程序到DRAM,再跳转到DRAM运行,就会随机性出现该问题。 无法找到更具体的原因,麻烦帮忙协助解决一下,谢谢!。
|