大家好、
我们遇到了自定义电路板内核停止/挂起/锁定问题。
虽然我们在单核配置下运行、但我们认为此问题与勘误表#798870无关、因为我们:
- 在 L2ACTLR 中设置危险检测超时位
- 根据权变措施(停止后继续运行)定期运行 DMA
- 即使禁用 L2缓存(SCTLR 清除中的 C 位)也已观察到停止
- 可以在几分钟内定期体验这种失速
我们已经确认、我们正在访问的外设(DDR3、PCIe)仍然通过 DAP 进行响应。
我们目前使用 Lauterbach 探针;最近我们遇到了类似的失速问题、通过更改用于连接探针的命令来缓解这一问题。 对于我们的探头、使用"System.up"进行初始连接会导致我们的应用程序版本每次在同一个部分停止运行(即我们使用"system.up"进行连接、加载引导加载程序、运行引导加载程序、加载映像、运行映像、 然后、它每次都在大致相同的区域内失速)。 为了解决此问题、我们发现使用"system.attach"后跟"break.direct"或在未连接调试器的情况下(物理或其他方式)运行应用程序不会导致停止。
这两个命令都初始化了调试/JTAG 端口;区别在于连接不执行复位、也不会停止处理器状态的更改。
遗憾的是、实际断开调试器仍会导致我们当前的失速情况。 我们不知道这是单独的失速问题、还是调试器加剧了相同的失速问题。
我们希望能够询问内核并检查其处于何种状态、但由于停止、通过调试器对内核的所有访问和控制都将停止。 例如、尝试停止执行会导致调试器抛出"仿真运行"错误;尝试访问内核寄存器会导致故障和"总线错误"
我们是否可以采取任何步骤来尝试解决正在发生的情况以及原因? 我们是否可以/应该查询任何寄存器来查看 SoC 的内部状态?
非常感谢