- 添加OtaCoordinator单例模式,提供9状态系统级OTA协调功能 - 重构OtaRelay为事件驱动状态机,从4阶段扩展为6阶段状态机 - 实现系统级状态管理:OTA_SYS_IDLE/GD32_STORING/GD32_RELAYING等9个状态 - 传输层通过OtaCoordinator统一入口管理ESP32/GD32 OTA操作序列化 fix(protocol): 优化协议层安全配置和参数管理 - Scramble常量改为运行时随机生成,提升安全性 - GD32芯片UID从握手包动态获取,移除编译期常量 - 添加运行时SCRAMBLE_CONST参数说明 refactor(esp32_ota): 优化ESP32 OTA分区擦除策略 - BLE OTA采用实际固件大小而非分区全尺寸进行擦除 - 避免全分区擦除导致的Task Watchdog超时问题 - 擦除大小对齐到64KB块边界确保尾部数据干净 feat(transport): 增强SPI传输层功能和可靠性 - 添加Flash元数据记录(total_size/stored_size/last_seq/checksum) - 支持中继恢复判断和完整性校验 - 添加ACK错误码支持(0x04=CRC错误) feat(ble): 实现BLE传输层乱序重排和预检功能 - 添加32槽reorder buffer处理窗口内乱序包 - 新增0xF9命令支持仅SHA校验不入库的预检模式 - 完善BLE OTA收尾流程和状态跟踪 docs(readme): 更新架构文档和API说明 - 详细描述OtaCoordinator系统级状态流转 - 更新OTA流程状态机图表和说明 - 补充新的控制命令和配置参数说明
49 lines
1.1 KiB
CMake
49 lines
1.1 KiB
CMake
idf_component_register(
|
||
SRCS
|
||
"core/main.cpp"
|
||
"ota/esp32_ota_core.cpp"
|
||
"ota/ota_coordinator.cpp"
|
||
"relay/ota_relay.cpp"
|
||
"transport/spi_master.cpp"
|
||
"transport/protocol.cpp"
|
||
"server/wifi_ota.cpp"
|
||
"server/ble_ota.cpp"
|
||
"monitor/health_monitor.cpp"
|
||
"monitor/debug_log.cpp"
|
||
INCLUDE_DIRS
|
||
"."
|
||
"core"
|
||
"ota"
|
||
"relay"
|
||
"transport"
|
||
"server"
|
||
"monitor"
|
||
"include"
|
||
REQUIRES
|
||
app_update
|
||
cjson
|
||
esp_driver_spi
|
||
esp_driver_tsens
|
||
esp_driver_uart
|
||
esp_wifi
|
||
esp_netif
|
||
esp_event
|
||
esp_partition
|
||
esp_timer
|
||
esp_http_server
|
||
esp_blockdev
|
||
nvs_flash
|
||
freertos
|
||
mbedtls
|
||
bt
|
||
)
|
||
|
||
# 每次构建时自动刷新 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
|
||
) |