ZHCAFQ7 September 2025 F29H850TU , F29H859TU-Q1
如第 3.2 节所述,错误地址和程序计数器地址可用于调试错误源。本节以 F29 SDK 中的 ESM 多核 (esm_ex1_cpu1_cpu3) 为例,展示如何解读错误地址和程序计数器。
可以将程序计数器 (PC) 地址复制到 CCS 反汇编视图,以查找发生错误的源代码。在此示例中,在查看 EAM 捕获的 PC 地址 (0x10402C14) 的相应 PC 地址 CCS 反汇编视图(如图 4-7 中所示)时,指向位置 0x20000000 (M0 RAM) 的数据写入操作,该位置也记录在 EAM 的高优先级地址寄存器内。因此,借助 PC 地址和错误地址信息,用户可以将问题精确指向导致错误的特定 CPU3 源代码写入操作。
CPU3 DW(数据写入)总线上发生了错误,从代码角度来看,这也与预期行为相符,因为 CPU3 应用程序代码对 M0RAM 的 M0RAM_data 进行写入操作,这是 CPU3 代码不允许的。CPU3 仅具有 M0RAM 的读取数据权限,因此在这种情况下,写入操作导致了 CPU3 DW 总线上出现安全违例错误。
图 4-7 程序计数器的反汇编视图| 存储器 | 交错式 | CPU1 | CPU2 | CPU3 | HSM | RTDMA1 | RTDMA2 |
|---|---|---|---|---|---|---|---|
| M0 RAM | 是 | 0WS 数据(读写) | 0WS 数据(只读) | 3WS 数据(只读) | - | - | - |