feat(core): 升级固件至v0.4.1并增加GD32初始化状态监控功能

- 修复GD32 OTA中继全程ring抑制问题:handleIdle起点reset()曾立即解除
  taskEntry设置的suppressRingService(true),导致中继全程worker偷读OTA ACK/WAIT
- 增加reset(bool release_ring_suppress)参数控制ring抑制释放时机
- 新增GD32 APP初始化状态可视化功能(配套GD32 1.5.34+):
  * 通过SPI 0xA3查询模块位图/关键失败位图/复位源
  * /system/status接口新增gd32_init字段提供状态详情
 * 支持故障码数组显示,前端可直接显示中文失败原因
- 添加GD32模块级故障码支持(配套GD32 1.5.36):
  * 解析INIT_STATUS响应中的fault_codes数组
  * 每模块1B故障码,支持CANFD通道号显示
- 电机状态协议升级:STATUS DLC从32字节扩展到48字节,
  二进制协议版本升级到v2,entry大小从76字节变为92字节
- 修复SPI响应类型表,将0xA3加入短响应和APP ISR快速响应类型
This commit is contained in:
小龙虾
2026-09-09 03:23:06 +08:00
parent ebb3dcdf38
commit 5315f91475
9 changed files with 252 additions and 85 deletions
+3 -3
View File
@@ -13,9 +13,9 @@
// 固件版本
#define FW_VERSION_MAJOR 0
#define FW_VERSION_MINOR 3
#define FW_VERSION_PATCH 82
#define FW_VERSION_STRING "0.3.82" // DebugLog 新增 UART0 RX 泵任务(GPIO20, 3M 8N1):收到的串口行按 \n 切行、剥 \r,以 tag=UART 推入 ring → HTTP /logs 出现在网页日志面板;接线=任意串口源 TX→H1/H2 的 ESP_RX。0.3.81 GD32 OTA 包级防呆:中继触发前校验 gd32_ota 镜像向量表身份(Gd32FlashStore::validateStoredImageIdentity),BOOT 包/非 APP 包在 WiFi /ota/relay 与 BLE 0xF7 均拒绝,GD32 APP 区不再被错误包擦除;BLE 新增 0x87 完成码
#define FW_VERSION_MINOR 4
#define FW_VERSION_PATCH 1
#define FW_VERSION_STRING "0.4.1" // GD32 OTA 中继全程 ring 抑制修复:handleIdle 起点调 reset() 曾把 taskEntry 刚置位的 setSuppressRingService(true) 立即解除,导致中继全程 worker 偷读 OTA ACK/WAIT("serviceRing 读到 RESPONSE"告警,log#449),poll 空等→50ms 重发→包失败;reset() 增加 release_ring_suppress 参数,状态机起点 reset(false) 只清状态不清抑制,结束/中止路径仍统一释放。0.3.85 INIT_STATUS 日志补打 fault_codes hex 一行(13B 模块故障码,编码见 GD32 sys/initial.h)——排查 GD32 init 失败无需解码位图;配套 GD32 1.5.38 看门狗 LSI 修复验证。0.3.84 GD32 模块级故障码(配套 GD32 1.5.36):0xA3 INIT_STATUS 响应 25B 时解析 [12..24] fault_codes(每模块 1B,canfd 高 4 位为通道号),gd32_init_status_t 增 fault_codes/has_fault_codes;/system/status gd32_init 新增 fault_codes 数组,前端「GD32 自检」悬停/值直接显示中文失败原因。0.3.83 GD32 APP 初始化状态可视(配套 GD32 1.5.34):身份块[15]解析 init_state(0=OK/1=degraded/2=critical_fail,HELLO/PING 自动刷新,异常打 WARN);新增 SpiMaster::appInitStatus() 经 SPI 0xA3 查询模块位图/critical 失败位图/复位源(仅 APP 角色,成功即缓存,session 重建自清);/system/status 新增 gd32_init 字段(state/state_known/detail_known/module_mask/critical_fail_mask/reset_cause,惰性查询+10s 失败退避);0xA3 加入短响应/ISR 快速响应类型表。0.3.82 DebugLog 新增 UART0 RX 泵任务(GPIO20, 3M 8N1):收到的串口行按 \n 切行、剥 \r,以 tag=UART 推入 ring → HTTP /logs 出现在网页日志面板;接线=任意串口源 TX→H1/H2 的 ESP_RX。0.3.81 GD32 OTA 包级防呆:中继触发前校验 gd32_ota 镜像向量表身份(Gd32FlashStore::validateStoredImageIdentity),BOOT 包/非 APP 包在 WiFi /ota/relay 与 BLE 0xF7 均拒绝,GD32 APP 区不再被错误包擦除;BLE 新增 0x87 完成码
// Git 信息(手动填写)
#define GIT_HASH "770ae14"