test(vd960DBN): 跳过 snap_init 实验 — SPI 序列还原旧固件

回答'为什么旧固件正常': 旧固件也有 offlog_boot 32B 写, 理论上也踩同样硬件问题
差异: 新固件启动早期 SPI 密度翻倍(snap_init 读+擦+写头) + 快照区首擦
实验: #if 0 snap_init → SPI 序列=旧固件
稳定 → 快照 SPI 触发; 崩 → offlog_boot 本身, 旧固件也该崩(硬件一直有问题)
This commit is contained in:
wangfq
2026-08-12 19:34:55 +08:00
parent 8bb576111b
commit f766530609
2 changed files with 8 additions and 1 deletions
@@ -319,8 +319,15 @@ int main(void)
PRINT("INIT: storage ok\n");
offlog_init();
PRINT("INIT: offlog ok\n");
/* ===== 实验: 跳过 snap_init (2026-08-12) =====
目的: SPI 序列还原为旧固件(无快照SPI), 区分触发源
稳定 → 快照SPI(读/擦/写头)触发; 崩 → offlog_boot本身(旧固件也该崩) */
#if 0
snap_init();
PRINT("INIT: snap ok\n");
#else
PRINT("INIT: snap skipped (offlog-only SPI seq)\n");
#endif
/* 复位原因: 必须在初始化后立即读 (离复位时刻最近), 并清除标志,
保证下次上电只反映本次复位原因 (RCC_RSTSCKR, STM32F1/CH32V20x 兼容) */
@@ -114,7 +114,7 @@ void SPI_Flash_Init(void)
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStructure);