feat(vd960DBN): 快照区延后初始化(开机3s后) — 避开启动早期SPI重负载窗口 (2026-08-17)
诊断: 08-14恢复快照区后频繁重启。RSTSCKR无复位标志(非硬件复位) + BOOT_CNT恒=1(.noinit被清, RAM全丢级) + 实验A(跳过offlog_boot)仍崩 → 启动早期SPI重负载(offlog/snap init 擦+整扇区写回~80ms×2)让系统 进入临界状态, 后续SPI操作(load_cfg读参数区)成为压垮点。 方案: - snapshot.c/h: 新增 snap_delayed_init(), 主循环每轮调用, 开机3s后 首次进入执行 snap_init (非阻塞, mstick()>=3000 门控) - peripheral_main.c: main() 移除 snap_init 调用; 主循环喂狗后加 snap_delayed_init(); 撤销实验A(恢复offlog_boot)/实验B(恢复load_cfg) - 3s内传感帧由 snap_enqueue/snap_flush 的 !_ready 门控自动丢弃不落盘 - 保留 BOOT_CNT 诊断打印(.noinit 计数器+地址) - devlog 置顶 2026-08-17 条目
This commit is contained in:
@@ -122,6 +122,7 @@ typedef struct {
|
||||
* API
|
||||
*===========================================================================*/
|
||||
void snap_init(void); /* 上电初始化 (扫描恢复) */
|
||||
void snap_delayed_init(void); /* 主循环延后初始化 (开机 3s 后, 2026-08-17) */
|
||||
uint8_t snap_enabled(void); /* Flash 初始化成功 */
|
||||
|
||||
void snap_enqueue(const LUP_SensorReport *sr); /* 主循环入队: 打包→RAM 暂存 (满丢新) */
|
||||
|
||||
Reference in New Issue
Block a user