我们的项目通过仿真器可靠运行(每次运行时都不会出现故障、运行数天而不会出现单个断续、因此我们知道 DSP 硬件本身是可靠的)。 但是、当从闪存运行相同的代码时、DSP 有时不会引导。 一些 DSP 比其他 DSP 更糟糕(例如、某些 DSP 将在10次中引导9次、而其他 DSP 将在10次尝试中仅引导两次)。 一旦 DSP 启动、就可以正常运行、但有时它不会启动。 我们已经将此问题追溯到从 DDR3执行的第一个函数(LCD 初始化例程)(我们的代码非常大、包含了内部存储器和 DDR3中的函数)。 当 DSP 无法引导时、我们看到它在尝试调用此函数时已中止。 它甚至不会进入该功能、因为我们将 LED 诊断置于启动状态、LED 不会亮起。
DSP 通过 EMIF16通过 NOR 闪存引导。 启动故障来自冷启动(加电)。 如果 DSP 无法引导、则可以通过仿真器加载项目并正常运行。
有什么线索可以导致这种情况? 它本质上是随机的、因此它必须与加电条件有关。