- 将日志环形缓冲区从静态数组改为动态堆分配
- 实现启动时大容量缓冲区和运行时小容量缓冲区的切换机制
- 添加日志环满时优先保留错误和警告信息的清理策略
- 优化内存使用,在日志为空时避免不必要的内存分配
- 移除调试日志中的冗余字段显示
feat(api): 更新CAN接口为批量发送模式
- 将 `/can/send` 接口替换为 `/can/send_batch`,支持1到N帧的批量发送
- 更新API文档中的接口描述和使用示例
- 修改请求参数格式为 `{"ch":0,"frames":[{...}]}` 返回格式为 `{"status":"ok","results":[...]}`
- 单帧发送也需要通过send_batch接口实现
feat(monitor): 新增GD32 ADC调试反馈处理功能
- 添加gd32_adc_feedback组件用于解析0xC4类型的SPI反馈
- 实现ADC数据解析包括温度、电压等参数的计算和转换
- 在can_feedback_task中集成ADC反馈分发逻辑
- 添加线程安全的数据获取和年龄检查接口
refactor(config): 优化任务栈大小配置并调整OTA块大小
- 重新评估各任务栈使用情况,优化HTTP、WiFi、SPI等工作任务的栈大小
- 将HTTP服务器栈从8KB调整至7KB,WiFi OTA任务栈从4KB调整至3KB
- OTA块大小从2KB调整回4KB以提升传输吞吐性能
- 重新整理配置文件结构,移动WiFi模式配置位置
57 lines
3.0 KiB
CMake
57 lines
3.0 KiB
CMake
# ESP32-C3 OTA 中继项目 - 主组件构建配置
|
||
idf_component_register(
|
||
SRCS
|
||
"core/main.cpp" # 程序入口 (app_main)
|
||
"core/system_boot.cpp" # 启动模块位图与汇总
|
||
"ota/esp32_ota_core.cpp" # ESP32 本机 OTA 核心(分区写入/SHA验证)
|
||
"ota/ota_coordinator.cpp" # OTA 多通道协调器(状态机/互斥)
|
||
"relay/ota_relay.cpp" # GD32 SPI OTA 中继状态机
|
||
"storage/gd32_flash_store.cpp" # GD32 Flash 存储抽象层(H1 提取)
|
||
"server/wifi_ota.cpp" # WiFi HTTP OTA 服务器
|
||
"server/http_handlers.cpp" # HTTP 路由处理(H2 从 wifi_ota 提取)
|
||
"server/ble_ota.cpp" # BLE OTA 公开 API / 收尾 / 共存
|
||
"server/ble_ota_data.cpp" # BLE OTA 数据路径(reorder/worker/DATA_IN)
|
||
"server/ble_ota_host.cpp" # BLE OTA GATT/GAP/广播/Host
|
||
"monitor/health_monitor.cpp" # 系统健康监控(温度/RSSI/堆内存/栈水位主动巡检)
|
||
"monitor/cpu_stats.cpp" # 1Hz FreeRTOS CPU 占用采样任务
|
||
"monitor/can_feedback_task.cpp" # CAN 反馈被动监听(0xC1 takeEvent)+ 分发 0xC4
|
||
"monitor/gd32_adc_feedback.cpp" # GD32 ADC 调试反馈缓存(0xC4)
|
||
"monitor/debug_log.cpp" # 三路调试日志(UART/UDP/环形缓冲)
|
||
"monitor/task_stack.cpp" # 任务栈水位收集 + 溢出钩子
|
||
INCLUDE_DIRS
|
||
"."
|
||
"core"
|
||
"ota"
|
||
"relay"
|
||
"storage" # GD32 Flash 存储抽象层头文件
|
||
"server"
|
||
"monitor"
|
||
"include" # 公共头文件(app_config.h, version.h)
|
||
REQUIRES
|
||
transport # M5: 传输层组件(SPI/CANFD/协议)
|
||
app_update # ESP32 OTA API
|
||
cjson # JSON 解析/生成
|
||
esp_driver_tsens # 温度传感器驱动
|
||
esp_driver_uart # UART 驱动(调试日志)
|
||
esp_wifi # WiFi STA/AP 模式
|
||
esp_netif # 网络接口层
|
||
esp_event # 事件循环
|
||
esp_partition # Flash 分区操作
|
||
esp_timer # 高精度定时器
|
||
esp_http_server # HTTP OTA 服务器
|
||
esp_blockdev # Flash 块设备
|
||
nvs_flash # NVS 存储(OTA 元数据)
|
||
freertos # RTOS 内核
|
||
mbedtls # SHA-256 / AES 加密
|
||
bt # NimBLE BLE 协议栈
|
||
)
|
||
|
||
# 每次构建时自动刷新 version.h(BUILD_TIME / GIT_HASH)
|
||
add_custom_target(version_header ALL
|
||
COMMAND ${CMAKE_COMMAND}
|
||
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
|
||
-DOUTPUT_FILE=${CMAKE_CURRENT_SOURCE_DIR}/include/version.h
|
||
-P ${CMAKE_SOURCE_DIR}/cmake/gen_version_script.cmake
|
||
COMMENT "Refreshing version.h"
|
||
VERBATIM
|
||
) |