diff --git a/CHANGELOG.md b/CHANGELOG.md index ae7b706..471c780 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,53 @@ --- +## vd960DBN V1.02.01 — 2026-08-17(DBN 通信板单侧更新) + +> 本次为 **vd960DBN 单侧发布**(Loop 固件未变,协议均未变更,可正常配套)。 + +**配套版本矩阵** + +| 组件 | 版本 | +|------|------| +| vd960DBN 固件 (CH32V208, DLD960GA) | **1.02.01** | +| vd960Loop 固件 (AT32F421) | 1.0(不变) | +| DLD960Loop 串口协议(MCU 间 0x7F) | V1.05(不变) | +| DLD960 TCP JSON 协议(:5960) | V1.02(不变) | +| DLD960 IoT MQTT 协议 | V1.06(不变) | +| DLD960 BLE 协议 | V1.02(不变) | + +### 🔴 P0 稳定性修复:频繁"复位"根因闭环(栈溢出) +- **现象**:恢复快照区功能后设备 100~180ms 一轮"复位"循环(RSTSCKR 无复位标志 = PC 跑飞,非硬件复位) +- **根因**:`.bss ≈ 41.7KB` 挤占 RAM → 栈仅 ~1.9KB → `load_cfg/output_cfg` 的 printf 栈峰值触顶 → 覆盖返回地址 → PC 跑飞跳回 0 重启 +- **修复**: + - RAM 瘦身两轮:ETH_MAX_PACKET_SIZE 1520→768、RECE_BUF_LEN 1400→1024、ARP 表 50→16、MQTT 发送缓冲 1024→800、loop_data payload 1400→800 → **栈 1.9KB → 6.3KB** + - load_cfg 字符串 0 终止保险(防 Flash 配置字符串 %s 越界打印) + - 快照区初始化延后至开机 3s(避开启动早期 SPI 重负载窗口,非根因但减压) + +### 🟢 可靠性:UART2 RX DMA 循环接收 +- 根治遗留问题"PRINT 关中断(~7.4ms)期间 UART2 丢字节 → checksum fail(1-3 分钟一次)" +- DMA1_Ch6 循环模式硬件收字节(不依赖 CPU 中断),主循环轮询消费;512B 环形缓冲 + 溢出保护 +- 帧解析状态机移入主循环,消除中断竞争 + +### 🟢 资源与代码卫生 +- .bss 46KB → 41.7KB;中断路径大数组 static 化(栈峰值 -1.8KB) +- 调试代码结案清理:移除 BOOT_CNT 诊断打印、_dbg_cnt 心跳打印;保留 fault_diag 基础设施(未来疑难杂症复用) + +### 📋 其他 +- 固件版本三段式:`FIRMWARE_VER="1.02.01"`(MAIN=1 SUB=2 SUBSUB=1) + +### 已知约束 +- 设备无 RTC,时钟同步依赖平台下发(校准前 ts 为上电秒数) +- BLE 上报版本为 MAIN/SUB 两字节(1.02),SUBSUB 仅字符串上报(MQTT/TCP JSON) +- 快照区延后 3s 初始化:开机 3s 内传感数据不落盘(设计接受) +- UART2 RX DMA 占用 DMA1_Ch6(全工程唯一,无冲突) + +### 验证 +- ✅ 板级:无异常重启;MQTT(159.75.137.141:1883)、BLE 广播、配置加载正常 +- [ ] 待回归:UART2 DMA 长时间运行(checksum fail 消失)、TCP JSON 命令交互、快照 BLE 0x28/0x29/0x2A 查询 + +--- + ## V1.0.0 — 2026-07-16(首个正式发布) **配套版本矩阵** diff --git a/README.md b/README.md index 396a900..cb4348f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # vd_960 — DLD960 四通道车辆检测器(双 MCU 架构) -> 当前发布版本:**V1.0.0**(2026-07-16)· 变更历史见 [CHANGELOG.md](CHANGELOG.md) +> 当前发布:**vd960DBN V1.02.01**(2026-08-17,DBN 单侧更新)· 完整版本见 [CHANGELOG.md](CHANGELOG.md) ## 产品概述 @@ -41,7 +41,7 @@ DLD960 是一款基于环形线圈检测原理的四通道车辆检测器,支 | 子项目 | 目录 | MCU | 固件版本 | 功能 | |--------|------|-----|---------|------| | vd960Loop | `vd960Loop/` | AT32F421 | 1.0 | 线圈驱动、频率采样、车辆检测算法、0x7F 串口上报 | -| vd960DBN | `vd960DBN/` | CH32V208 | 1.0 | 蓝牙管理、TCP/IP(WCHNET)、MQTT、串口桥接、4G 扩展(RFU) | +| vd960DBN | `vd960DBN/` | CH32V208 | 1.02.01 | 蓝牙管理、TCP/IP(WCHNET)、MQTT、串口桥接、4G 扩展(RFU) | > ⚠ 发布约束:自协议 V1.05 起(variation 2B无符号 → 3B有符号),**Loop 固件与 DBN 固件必须同版本配套发布**,禁止混刷。