Files
hc32f460_boot/components/update_protocol.h
T
YuanHongbin 8ded5ca0dc chore: 源码编码GB2312统一转换为UTF-8
18个含有中文注释的.c/.h文件从GB2312转为UTF-8(无BOM)
2026-07-20 14:27:38 +08:00

54 lines
1.1 KiB
C

#ifndef _UPDATE_PROTOCOL_H_
#define _UPDATE_PROTOCOL_H_
#include "stdint.h"
#define CRC16_BASE 0xA001
//帧头结构体
typedef struct {
uint8_t Header;
uint8_t SlvAddr;
uint8_t Cmd;
uint8_t PayloadLen;
}update_protocol_hd_t;
//主机下发升级请求载荷结构体
typedef struct {
uint16_t PackageNum;
uint32_t AppSize;
uint32_t AppCrc32;
}__attribute__ ((packed))update_protocol_req_t;
//从机请求下发结构体
typedef struct {
uint16_t PackageIndex;
uint32_t PackageNum;
}__attribute__ ((packed))update_protocol_get_t;
//主机应答下发数据结构体
typedef struct {
uint16_t PackageIndex;
uint16_t PackageNum;
uint8_t DataLen;
}__attribute__ ((packed))update_protocol_rsp_t;
typedef int (*update_callback_t)(uint8_t cmd, void *pdata, int len,void *pload,int size);
typedef void (*update_send_t)(uint8_t *pBuf,int len);
void update_init(update_send_t pCbs);
void update_event_cbs_reg(update_callback_t pCbs);
uint8_t update_unpack(uint8_t* rxData, int rLen,uint8_t *cmd, void *pUser, int *pLen);
void update_send_cmd(uint8_t Cmd, uint16_t Indx, int PageNum);
#endif