- 新增 SystemBoot 类用于跟踪各模块初始化状态,提供位图标记与报告功能 - 在 main.cpp 中重构初始化流程,按顺序初始化各模块并记录状态 - 添加 system_boot.cpp 模块文件到构建配置 - CAN反馈任务增加冷启动延迟,避免与GD32初始化窗口冲突 refactor(ota): 优化OTA协调器线程安全机制 - 修改 lock()/unlock() 方法返回take结果,确保mutex正确释放 - 修复多任务并发时mutex死锁问题,避免vTaskPriorityDisinherit断言 - 统一finalize失败后的状态复位逻辑,确保协调器回到IDLE状态 - 优化忙状态超时检测与自愈机制 perf(boot): 优化冷启动时序与资源管理 - 简化README中冷启动优化说明,聚焦核心逻辑 - 优化BOD阈值设置为LVL5,改进电源稳定性 - 增加BLE OTA工作线程优先级,减少丢包情况 - 优化堆告警节流机制,在OTA期间降低告警频率 fix(relay): 改进GD32应用存活检测逻辑 - 调整GD32 APP存活验证时序,增加会话建立验证 - 修复HELLO建立session后未验证role的问题 - 优化FINISH后等待APP启动的静默时间与重试机制 - 统一GD32探测逻辑到OTA中继任务 refactor(server): 优化HTTP服务端内存与性能 - 使用静态缓冲区替代动态分配,减少堆碎片化风险 - 优化CAN批量发送期间暂停反馈任务的机制 - 调整BLE连接参数请求逻辑,提升传输性能 - 改进错误处理流程,避免堆紧张时的额外分配 bump(version): 更新固件版本至0.3.50 - 更新版本号从0.3.49到0.3.50 - 更新编译时间戳与Git哈希值
51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
/**
|
||
* @file system_boot.h
|
||
* @brief ESP32 启动阶段模块初始化位图与汇总报告。
|
||
*
|
||
* 每个模块 init/建任务成功后 mark(bit)=1,启动末尾 report() 打印整体结果。
|
||
* /system/status 通过 appendStatusJson() 把同一份结果暴露给网页。
|
||
*/
|
||
#ifndef SYSTEM_BOOT_H
|
||
#define SYSTEM_BOOT_H
|
||
|
||
#include <stddef.h>
|
||
#include <stdint.h>
|
||
#include <stdbool.h>
|
||
|
||
/** 启动模块位(成功置 1) */
|
||
enum SystemBootBit : uint32_t {
|
||
BOOT_NETIF = 1u << 0,
|
||
BOOT_EVENT_LOOP = 1u << 1,
|
||
BOOT_DEBUG_LOG = 1u << 2,
|
||
BOOT_WIFI_EARLY = 1u << 3,
|
||
BOOT_HEALTH_MON = 1u << 4,
|
||
BOOT_HEALTH_TASK = 1u << 5,
|
||
BOOT_CPU_STATS = 1u << 6,
|
||
BOOT_PROTOCOL = 1u << 7,
|
||
BOOT_OTA_COORD = 1u << 8,
|
||
BOOT_SPI = 1u << 9, ///< SPI 主机 L0(本机就绪)
|
||
BOOT_OTA_RELAY_TASK = 1u << 10,
|
||
BOOT_WIFI_TASK = 1u << 11,
|
||
BOOT_BLE_TASK = 1u << 12,
|
||
BOOT_CAN_LINK = 1u << 13, ///< SPI 对端 L0(HELLO 可达 GD32,非关键)
|
||
BOOT_CAN_FB_TASK = 1u << 14, ///< CAN 反馈任务(依赖 SPI L0)
|
||
BOOT_OTA_VALID = 1u << 15,
|
||
};
|
||
|
||
class SystemBoot {
|
||
public:
|
||
static void reset();
|
||
static void mark(SystemBootBit bit);
|
||
|
||
/** 串口汇总;返回关键模块是否全部成功 */
|
||
static bool report();
|
||
|
||
/**
|
||
* @brief 追加 boot JSON 字段(含前导逗号)到 status 缓冲。
|
||
* @return 新的写入偏移
|
||
*/
|
||
static int appendStatusJson(char *buf, size_t cap, int offset);
|
||
};
|
||
|
||
#endif /* SYSTEM_BOOT_H */
|