12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #ifndef __MCUIAP_H_
- #define __MCUIAP_H_
- #include "main.h"
- #define PCTA_MAGIC 0x41544350 // "PCTA"
- #define UPDATE_PROTOCOL_APP 0x80 //APP下载协议
- #define UPDATE_PROTOCOL_RFILE 0x95 //RFile资源文件下载协议
- //以下命令用于传输APP文件
- #define UPDATE_CODE_VERSION_REQ 0x00
- #define UPDATE_CODE_DATA_REQ 0x01
- #define UPDATE_CODE_DATA_WITH_CRC_REQ 0x02
- #define UPDATE_DEV_ID_SIZE 16
- #define UPDATE_DATA_SIZE_MAX 2048 //每次读取文件数据大小最大值
- #pragma pack(push)
- #pragma pack(1)
- typedef struct{
- uint32_t magic; // UPDATE_MAGIC
- uint8_t protocol;
- uint8_t code;
- char dev_id[UPDATE_DEV_ID_SIZE];
- uint16_t tid;
- uint16_t count; // 除本结构外后续数据长度
- } update_hdr_t; //sizeof()=4+2+16+2+2=26
- typedef struct{
- update_hdr_t hdr;
- char product[16];
- uint16_t version;
- } update_version_req_t;//26+16+2=44
- typedef struct{
- update_hdr_t hdr;
- uint8_t version_md5[16]; // 升级包 MD5
- uint32_t size; // 升级包大小
- } update_version_rsp_t;//26+16+4=46
- typedef struct{
- update_hdr_t hdr;
- uint8_t version_md5[16]; // 升级包 MD5
- uint32_t offset;
- uint32_t length;
- } update_data_req_t;//26+16+4+4=50
- typedef struct{
- update_hdr_t hdr;
- uint8_t version_md5[16]; // 升级包 MD5
- uint32_t offset;
- uint32_t length;
- uint8_t data[UPDATE_DATA_SIZE_MAX+2];//后面两个是CRC值,实际长度可能没有那么多
- } update_data_rsp_t;//26+16+4+4+1024+2=1076
- #pragma pack(pop)
- T_INT32 getMaipCnt(void);
- void miapCntUpdate(T_INT32 value);
- T_BOOL isMcuIapOff(void);
- void McuIapStart(void);
- void McuIapKeepOn(void);
- #endif
|