feat(vd960DBN): 恢复快照区功能, 移除 sim_snap_spi 实验桩, UART2 波特率注释修正
- peripheral_main.c: snap_init() 恢复 (去 #if 0), offlog_boot() 恢复 (上电复位原因记入事件日志); 删除 sim_snap_spi 模拟写密度实验函数 及主循环调用 (printf 重入修复后 SPI 写无罪已确诊, 实验收尾) - loop_uart_proto.h/c: UART2 波特率注释 115200/19200 -> 192000 (usart_biz.c 硬编码 192000 为实际值; g_storage_uart_baud=19200 为独立配置项不驱动 UART2, BLE 显示 19200 不代表实际速率) - devlog: 新增 2026-08-14 条目, UART2 RX DMA 方案列入待办
This commit is contained in:
+32
-3
@@ -6,6 +6,35 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-14 — 快照区功能恢复启用 + UART2 波特率澄清
|
||||
|
||||
### 背景
|
||||
printf 重入复位问题已确诊修复(2026-08-13,SPI 写无罪)。实验遗留的隔离代码收尾:快照区恢复启用、模拟写密度的 `sim_snap_spi` 实验桩移除。
|
||||
|
||||
### 变更
|
||||
| 文件 | 变更 |
|
||||
|------|------|
|
||||
| `peripheral_main.c` | `snap_init()` 恢复(去 #if 0);`offlog_boot()` 恢复(上电复位原因记入事件日志);删除 `sim_snap_spi` 实验函数 + 主循环调用 |
|
||||
| `loop_uart_proto.h` | 注释 UART2 波特率 115200 → 192000 |
|
||||
| `loop_uart_proto.c` | 注释 UART2(19200) → UART2(192000) |
|
||||
| `snapshot.c/h` | 无需改动(2026-08-12 已实现:环形 64B SnapRec、懒擦、掉电恢复、BLE 0x28/0x29/0x2A) |
|
||||
|
||||
### UART2 波特率澄清
|
||||
- **UART2(Loop MCU 口)实际波特率 = 192000**,`usart_biz.c` 硬编码;协议文档写 115200 已过时,以代码为准
|
||||
- `g_storage_uart_baud = 19200`(peripheral_main.c)是**独立配置项**(BLE 可读可改 + flash 存储),不驱动 UART2 波特率——BLE 小程序看到 19200 不代表 UART2 实际速率
|
||||
- **后续规划:UART2 RX 改 DMA/双缓冲**,解决偶发丢帧(1-3 分钟一次 checksum fail)
|
||||
|
||||
### 验证
|
||||
- `tests/test_snapshot.c` 9 用例 ALL PASS(gcc 隔离单测)
|
||||
- `check_c_balance.py` 3 文件 OK
|
||||
- 板级待办:上电 `INIT: snap ok`、BLE 0x28/0x29/0x2A 查询、断网期间快照落盘
|
||||
|
||||
### 遗留
|
||||
- [ ] UART2 RX DMA 方案落地(防丢帧)
|
||||
- [ ] 板级验证快照 BLE 查询命令
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-13 — 复位/卡死全链路诊断闭环:printf 重入 + 回调卡死 + UART2 丢字节
|
||||
|
||||
### 现场症状(多轮)
|
||||
@@ -27,7 +56,7 @@
|
||||
2. json_sensor_callback enter PRINT: printf 处理 %d %d %d 死循环
|
||||
(LUP Rx %s 打印成功, enter %d 打印卡死) → 主循环永久卡死
|
||||
3. UART2 丢字节: LUP Rx 打印 190B @256000 = 7.4ms 关中断 (PRINT 临界区)
|
||||
→ UART2(19200) RX 溢出丢字节 → 帧解析错位 → 粘帧 → checksum fail
|
||||
→ UART2(192000) RX 溢出丢字节 → 帧解析错位 → 粘帧 → checksum fail
|
||||
+ g_pkg_uart_2.flag 清理缺失 → 坏帧反复处理 → fail 刷屏
|
||||
```
|
||||
|
||||
@@ -53,11 +82,11 @@
|
||||
|
||||
### 遗留待办
|
||||
|
||||
- [ ] UART2 偶发丢帧(1-3 分钟一次 checksum fail):波特率 19200→115200(需 Loop MCU 配合)或 RX 改 DMA/双缓冲
|
||||
- [ ] UART2 偶发丢帧(1-3 分钟一次 checksum fail):RX 改 DMA/双缓冲(波特率已确认 192000,非 19200)
|
||||
- [ ] json_sensor_callback enter PRINT 的 printf %d 卡死根因(newlib lock / UART1 TC 轮询)——已注释规避,恢复前需查明
|
||||
- [ ] IWDG 卡死时未在 4s 复位:LSI 频率偏差 or 配置问题
|
||||
- [ ] `g_lup_sensor_cb` 单回调竞争:iot_evt_sensor_cb 与 json_sensor_callback 后注册覆盖先注册,事件沿检测可能被跳过(需多回调或合并)
|
||||
- [ ] 恢复快照区功能:`snap_init` 取消 `#if 0`、移除 `sim_snap_spi` 模拟实验,验证 BLE 0x28/0x29/0x2A 查询
|
||||
- [x] 恢复快照区功能(2026-08-14):`snap_init` 已恢复、`sim_snap_spi` 已移除,待板级验证 BLE 0x28/0x29/0x2A 查询
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user