fix(vd960DBN): fault_diag 无条件打印 marker — 卡死(非HardFault)也能定位

原只在 magic=0xFA57FA57 (HardFault) 时打印, 卡死/IWDG 复位时
marker 有值但 magic=0 → 轨迹丢失。改为:
- magic 有效 → 完整现场 (mcause/mepc/mtval/marker)
- marker!=0 且无 HardFault → 打印 no-hardfault + marker (卡死定位)
This commit is contained in:
wangfq
2026-08-13 16:35:30 +08:00
parent 4bdf8a7993
commit e7389b95fb
@@ -59,6 +59,11 @@ void fault_diag_init(void)
(unsigned long)g_fault_diag.mepc, (unsigned long)g_fault_diag.mepc,
(unsigned long)g_fault_diag.mtval, (unsigned long)g_fault_diag.mtval,
(unsigned long)g_fault_diag.marker); (unsigned long)g_fault_diag.marker);
} else if (g_fault_diag.marker != 0) {
/* 非 HardFault 复位 (IWDG 超时/卡死/掉电): marker 仍记录执行轨迹 */
PRINT("FAULT_DIAG: no-hardfault boot_cnt=%lu marker=0x%08lx (卡死/看门狗复位)\n",
(unsigned long)g_fault_diag.boot_cnt,
(unsigned long)g_fault_diag.marker);
} }
/* 重置现场, boot_cnt 保留递增 */ /* 重置现场, boot_cnt 保留递增 */
g_fault_diag.magic = 0; g_fault_diag.magic = 0;