diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c index dac2a87..7945969 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c @@ -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();