工具/软件:
如图所示、触发 NMI 中断后、使用 IDE 的脚本->错误处理->ESM_Sys ->ESM_Sys_check_stus。
由此可以推断、进入 NMI 的电流源信号是错误 Aggregator_CPU1_HPERR、
但寄存器中 CPU1 的错误类型都是 0。 我是否可以询问如何继续调查以确定进入 NMI 的具体原因。 便于我以后维修。 
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
如图所示、触发 NMI 中断后、使用 IDE 的脚本->错误处理->ESM_Sys ->ESM_Sys_check_stus。
由此可以推断、进入 NMI 的电流源信号是错误 Aggregator_CPU1_HPERR、
但寄存器中 CPU1 的错误类型都是 0。 我是否可以询问如何继续调查以确定进入 NMI 的具体原因。 便于我以后维修。 
您好、
对于 CPU1_HPERR、源可以是 CPU1 PR、DW、DR1 或 DR2。
默认 NMI ISR 会清除错误聚合器类型信息并将其存储在结构中以供以后调试。
根据您查看寄存器的位置、类型寄存器可能会在 NMI ISR 中被清除、请检查监视窗口中的 nmiStatus、并查看此处是否存储了错误类型。
知道错误类型后、我建议您查看反汇编视图、将 PC 地址从错误聚合器 PC 寄存器中放置 、并在反汇编视图中放置一个断点、当它到达那里时、可以看到与该错误对应的代码并从那里找到错误源。
错误地址寄存器值也有助于查找错误源、即由于 CPU 接口而发生错误的存储器/外设地址。
谢谢
感谢您的答复。 我读取了 NmiStatus 的值、发现错误类型为 0x20(访问 ACK 错误)。
根据 pcAddr 的相应操作、为 LD.32 D0、*(ADDR1)(A5+A0)。
但我的错误并没有发生在固定的时间,它可能是几分钟,甚至几十分钟。 与当前错误相对应的函数是一个 5m_dask 周期调用、因此并非每个调用都有问题。
我是否可以询问访问 ACK 错误是由软件错误还是硬件错误引起的、是否有任何建议的调查方向? 
是否有随时间变化的变量、它似乎是 addr、它读取更改了、有时最终结果是 0x1A000000 。
您能在 PC 前后围绕两个三行代码共享该 PC 的代码吗? 错误源可能是 PC 指向的代码行之前或之后的一个或两个代码。
您还可以将变量周围的 IF 条件置于、以检查其是否由于某种原因无效以执行 Estop 进行调试或切换 GPIO、如果变量无效、则在该变量之后保留 while 循环。
谢谢