Files
player/Project/Src/MyApp/system_updata.h
2025-06-27 00:32:57 +08:00

91 lines
1.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef SYSTEM_UPDATA_H__
#define SYSTEM_UPDATA_H__
#include "main.h"
//定义文件升级时缓存区大小
#define UPDATA_BUFF_SIZE 4096
// 发送文件时单包数据最大尺寸
#define SEND_FILE_PACK_MAXSIZE 100
//定义下载数据结构体
typedef struct
{
int step;
char name[256];
u32 dataLen;
u32 saveAddr;
int packet_all;
int packet_now;
u8 dataBuff[UPDATA_BUFF_SIZE];
int buffUsed;
}SysFile_UpdataStruct;
// 定义发送数据的结构体
typedef struct
{
char *name;
char *path;
int packet_all;
int packet_now;
int file_size;
int size_left;
int (*send_data)(void *data,int len);// 发送函数返回0成功
int (*progress)(int now,int all);// 反馈进度的函数
}SysFile_SendStruct;
//读取一个文件
u8 *SysFile_GetFileByName (char *name,u32 *size);
//通过SD卡进行系统文件升级
void SysFile_Updata(char *FileName,char *FilePath);
//通过协议进行系统文件升级
void SysFile_UpdataByCom (void);
//通过USB进行系统文件升级在中断中调用这个函数
void SysFile_UpdataByIrq (u8 *data,int len);
// 初始化
int SysFile_SendFileInit(SysFile_SendStruct *send,char *name,char *path,
int (*send_data)(void *data,int len),int (*progress)(int now,int all));
// 发送文件名,返回0成功
int SysFile_SendFileName(SysFile_SendStruct *send);
// 发送文件尺寸,返回0成功
int SysFile_SendFileInfo(SysFile_SendStruct *send);
// 发送文件数据,返回0成功
int SysFile_SendFileData(SysFile_SendStruct *send);
// 打包成功返回0
int SysFile_PackData(u8 *out,u8 *in,int in_size);
#endif