fix(vd960DBN): 恢复 factory 配置写入 — 换新空片后配置永久丢失
8-13 止血(SPI 写触发复位)根因已 8-17 闭环(栈溢出+printf 重入, 非 SPI 问题), offlog/snapshot 8-18 起持续 SPI 写入稳定 → 解除止血。 新空片(W25Q128)参数区无 magic + write_net_config 不写 magic → 每次上电 memory defaults, 保存配置永久丢失。恢复: mismatch 分支调 factory_dev_info() 写 magic+默认参数到 flash, 首次上电自动初始化。
This commit is contained in:
@@ -4,6 +4,34 @@
|
||||
>
|
||||
> 项目定位: DLD960 通信板 — BLE 配网、TCP JSON 协议服务、Loop MCU 串口桥接
|
||||
|
||||
## 2026-08-19 — 恢复 factory 配置写入(换新空片后"老是进入出厂初始化配置")
|
||||
|
||||
### 背景
|
||||
|
||||
换 W25Q128 新片后每次上电日志 `CFG: magic mismatch - MEMORY DEFAULTS (factory SPI write disabled)`,用户保存的配置不生效。
|
||||
|
||||
### 根因
|
||||
|
||||
1. **8-13 止血禁用了 factory 写入**(当时 SPI 写触发硬件复位死循环,临时方案:不写 Flash 用内存默认)——但该根因已在 8-17 闭环(.bss 挤占 RAM → 栈溢出 + printf 重入,**非 SPI 硬件问题**),offlog/snapshot 自 8-18 起持续 SPI 写入稳定,止血早该解除
|
||||
2. **新空片(W25Q128)参数区全 0xFF**,magic(PRODUCT_MODEL 字符串)不匹配 → 每次上电走内存默认
|
||||
3. **`write_net_config`/`set_ble_safe_pass` 保存配置只改字段不写 magic** → 即使保存过,下次上电 magic 仍 0xFF → 配置"永久丢失"
|
||||
|
||||
### 变更(cfig_flash.c,UTF-8+CRLF)
|
||||
|
||||
`load_cfg_from_flash()` mismatch 分支:删除"不写 Flash"止血,恢复调用 `factory_dev_info()`(写 magic + 默认参数 + 网络配置到参数区 0x00),打印改 `factory defaults written`。首次上电自动初始化参数区,后续上电正常加载 + 保存配置生效。
|
||||
|
||||
### 验证
|
||||
|
||||
- `check_c_balance.py` OK;`gcc -fsyntax-only` 无新错误(仅原有 unused warning)
|
||||
- SPI 读写实现对 W25Q128 兼容确认:4KB 扇区擦除 + 256B 页编程分页(storage.c 标准实现),指令集与 W25Q32 相同
|
||||
|
||||
### 遗留
|
||||
|
||||
- 待板级:新片上电确认 `factory defaults written` + 二次上电不再 mismatch
|
||||
- 待用户提供新芯片规格书:核对 0x90 设备 ID / JEDEC 容量码 / 指令兼容(如非华邦需重点核对)
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-19 — SPI Flash 识别去掉厂商代码判断(兼容多厂家同容量型号)
|
||||
|
||||
### 背景
|
||||
@@ -1442,6 +1470,7 @@ TCP 超时要等 ~2 分钟才触发 `SINT_STAT_TIM_OUT`,
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V4.6 | 2026-08-19 | 恢复 factory 配置写入: 解除 8-13 止血, 空片首启写 magic+默认参数 (换 W25Q128 后配置永久丢失修复) |
|
||||
| V4.5 | 2026-08-19 | SPI Flash 识别去厂商代码: W25Qxx 宏去 0XEF 前缀, ReadJEDEC_ID 删厂商校验, storage_init 低字节匹配 (兼容多厂家) |
|
||||
| V4.4 | 2026-08-19 | UART2 DMA 下 BLE→Loop OTA 修复: lup_feed_byte_ota 0x9F 帧解析+透传回 BLE (停等 ACK), DMA poll OTA 模式切换/溢出阈值/tick 归零, 单测 8 例 |
|
||||
| V4.3 | 2026-08-18 | log_query 改 hex 原始字节上报 (协议 V1.03/V1.07 修订): offlog_evt_to_hex/snap_rec_to_hex, 2 条快照 406B<800B, 快照 count 恢复 2 |
|
||||
|
||||
Reference in New Issue
Block a user