Files
STM8_Mesh_Control/include/ota_manager.h
T
十七 42a4650a78 feat: 完善Mesh继电器OTA与地址协议
- 增加STM8 Bootloader工程及出厂固件恢复流程\n- 增加W25Q64外部Flash驱动和OTA分包接收、CRC16校验、断点续传状态管理\n- 增加固件版本查询、升级结果上报与主机确认机制\n- 将业务帧从55 AA帧头调整为发送方Mesh短地址+CMD+LEN+DATA+CRC16\n- 修正JDY-28M外层地址与业务发送方地址的职责划分,支持广播请求定向应答\n- 同步更新硬件引脚、存储分区、OTA流程和主机通信协议文档\n- 已使用SDCC重新编译,应用代码大小为5512字节,链接地址为0x8800
2026-11-03 11:29:55 +08:00

34 lines
1.2 KiB
C

/**
* @file ota_manager.h
* @brief 应用程序侧 OTA 管理接口。
*
* 应用程序负责通过 JDY-28M 接收 OTA 分包、校验业务帧并写入 W25Q64。
* 下载完成后,应用程序只设置升级请求标志并复位;真正擦写片内程序
* Flash 的工作由独立 Bootloader 完成。
*/
#ifndef OTA_MANAGER_H
#define OTA_MANAGER_H
#include <stdint.h>
/** 初始化 OTA 状态机和外部 Flash 接口。 */
void OtaManager_Init(void);
/** 周期性处理 OTA 状态机,不得长时间阻塞主循环。 */
void OtaManager_Task(void);
/** 处理一条已经通过 Mesh 外层解析的 OTA 业务命令。 */
uint8_t OtaManager_HandleCommand(uint8_t command,
const uint8_t *data,
uint8_t length);
/** 返回当前是否处于 OTA 下载模式。 */
uint8_t OtaManager_IsActive(void);
uint8_t OtaManager_GetExpectedOffset(uint16_t *offset);
/**
* 读取Bootloader写入的升级结果并准备由主程序主动上报。
* @return 0表示没有待上报结果,非0表示升级结果码。
*/
uint8_t OtaManager_GetBootloaderResult(void);
/** 主机确认升级结果后清除待上报状态。 */
void OtaManager_AcknowledgeBootloaderResult(void);
#endif