test(vd960DBN): 跳过 snap_init 实验 — SPI 序列还原旧固件
回答'为什么旧固件正常': 旧固件也有 offlog_boot 32B 写, 理论上也踩同样硬件问题 差异: 新固件启动早期 SPI 密度翻倍(snap_init 读+擦+写头) + 快照区首擦 实验: #if 0 snap_init → SPI 序列=旧固件 稳定 → 快照 SPI 触发; 崩 → offlog_boot 本身, 旧固件也该崩(硬件一直有问题)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user