From e7389b95fbbbfac447fc306df493ce26ae367c75 Mon Sep 17 00:00:00 2001 From: wangfq Date: Thu, 13 Aug 2026 16:35:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(vd960DBN):=20fault=5Fdiag=20=E6=97=A0?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E6=89=93=E5=8D=B0=20marker=20=E2=80=94=20?= =?UTF-8?q?=E5=8D=A1=E6=AD=BB(=E9=9D=9EHardFault)=E4=B9=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=9A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原只在 magic=0xFA57FA57 (HardFault) 时打印, 卡死/IWDG 复位时 marker 有值但 magic=0 → 轨迹丢失。改为: - magic 有效 → 完整现场 (mcause/mepc/mtval/marker) - marker!=0 且无 HardFault → 打印 no-hardfault + marker (卡死定位) --- vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/ch32v20x_it.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/ch32v20x_it.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/ch32v20x_it.c index bbf4c0c..8429e31 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/ch32v20x_it.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/ch32v20x_it.c @@ -59,6 +59,11 @@ void fault_diag_init(void) (unsigned long)g_fault_diag.mepc, (unsigned long)g_fault_diag.mtval, (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 保留递增 */ g_fault_diag.magic = 0;