test(vd960DBN): 跳过 offlog_boot 写 — 二分定位 SPI 触发点

f766530(跳过snap)仍崩 → 非快照SPI; 旧固件也有 offlog_boot 32B 写
→ 硬件一直有问题只是未暴露; 另一差异: 事件区 0x010000(旧) vs 0x090000(新)
本版: #if 0 offlog_boot 写 (保留 RMVF 清除)
不崩 → offlog_boot 写(或切扇区擦除)触发; 崩 → 更早 SPI 读操作/非SPI
This commit is contained in:
wangfq
2026-08-12 19:39:50 +08:00
parent f766530609
commit 99ef6348d7
@@ -329,12 +329,17 @@ int main(void)
PRINT("INIT: snap skipped (offlog-only SPI seq)\n");
#endif
/* 复位原因: 必须在初始化后立即读 (离复位时刻最近), 并清除标志,
保证下次上电只反映本次复位原因 (RCC_RSTSCKR, STM32F1/CH32V20x 兼容) */
/* ===== 实验: 跳过 offlog_boot SPI 写 (2026-08-12) =====
目的: 二分定位 — 跳过 snap 仍崩 → 是否是 offlog_boot 32B 写触发
不崩 → offlog_boot 写(含切扇区擦除)触发; 崩 → 更早 SPI 读操作或非SPI */
{
uint32_t rcc_rst = OFFLOG_RCC_RSTSCKR;
#if 0
offlog_boot(rcc_rst);
OFFLOG_RCC_RSTSCKR |= OFFLOG_RST_RMVF; /* RMVF (bit24): 清复位标志 (原写 bit27=PORRSTF 无效) */
#else
PRINT("SKIP: offlog_boot write skipped\n");
#endif
OFFLOG_RCC_RSTSCKR |= OFFLOG_RST_RMVF; /* RMVF (bit24): 清复位标志 */
}
load_cfg_from_flash();