104 lines
2.8 KiB
C
104 lines
2.8 KiB
C
|
|
/*
|
|||
|
|
* tftp_function.h
|
|||
|
|
*
|
|||
|
|
* Created on: Dec 6, 2025
|
|||
|
|
* Author: cc
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef NETLIB_TFTP_FUNCTION_H_
|
|||
|
|
#define NETLIB_TFTP_FUNCTION_H_
|
|||
|
|
|
|||
|
|
#include "ch564.h"
|
|||
|
|
#include "eth_driver.h"
|
|||
|
|
#include "net_config.h"
|
|||
|
|
#include "debug.h"
|
|||
|
|
|
|||
|
|
#define TFTP_Destination_Port 69 //TFTP<54><50><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
#define TFTP_DTAT_Local_Port 65535 //TFTP <20><><EFBFBD>ݴ<EFBFBD><DDB4>䱾<EFBFBD>ض˿<D8B6>
|
|||
|
|
#define TFTP_LOG_Local_Port 65500 //TFTP LOG<4F><47><EFBFBD>䱾<EFBFBD>ض˿<D8B6>
|
|||
|
|
#define TFTP_DATA_LEN_MAX 517
|
|||
|
|
#define TFTP_DATA_PKT_HDR_LEN 4 //TFTP<54><50><EFBFBD>ݰ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
|
|||
|
|
#define TFTP_ACK_PKT_LEN 4 //TFTPӦ<50><D3A6><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define TFTP_IAP_Task_Timeout 30000 //TFTP IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
|
|||
|
|
|
|||
|
|
#define TFTP_File_Name_Size 128 //TFTP<54><50><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>128Byte
|
|||
|
|
|
|||
|
|
#define TFTP_LOG_Exceed_Size 4096 //<2F><>־<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>1 - <20><EFBFBD><DEB6><EFBFBD>С
|
|||
|
|
#define TFTP_LOG_Exceed_Time 7200 //<2F><>־<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>2 - <20><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|
|||
|
|
#define TFTP_IAP_Start 0x01 //TFTP IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
|
|||
|
|
#define TFTP_IAP_Finish 0x02 //TFTP IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define TFTP_IAP_Timeout 0x03 //TFTP IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|||
|
|
|
|||
|
|
#define TFTP_FUNTYPE_LocalIAP 0x01 //<2F><><EFBFBD><EFBFBD>IAP<41><50><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
#define TFTP_FUNTYPE_CloudIAP 0x02 //<2F>ƶ<EFBFBD>IAP<41><50><EFBFBD><EFBFBD>(Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
#define TFTP_FUNTYPE_LogUpload 0x03 //LOG<4F>ϴ<EFBFBD>
|
|||
|
|
|
|||
|
|
#define TFTP_IAP_DataType_APP 0x01 //IAP<41><50><EFBFBD><EFBFBD> - APP<50>̼<EFBFBD>
|
|||
|
|
#define TFTP_IAP_DataType_CONFIG 0x02 //IAP<41><50><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
typedef enum {
|
|||
|
|
TFTP_RRQ = 1,
|
|||
|
|
TFTP_WRQ = 2,
|
|||
|
|
TFTP_DATA = 3,
|
|||
|
|
TFTP_ACK = 4,
|
|||
|
|
TFTP_ERROR = 5,
|
|||
|
|
TFTP_OPTION = 6,
|
|||
|
|
}TFTP_OPCODE;
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
uint8_t IapFileType; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>0<EFBFBD>ǹ̼<C7B9> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8_t enable; //TFTP <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>״̬ 0X01:ʹ<>ܣ<EFBFBD>0x00:ûʹ<C3BB><CAB9>
|
|||
|
|
uint8_t FunType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x01:<3A><><EFBFBD><EFBFBD>IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x02:<3A>ƶ<EFBFBD>IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x03:LOG<4F><47>־<EFBFBD>ϴ<EFBFBD>
|
|||
|
|
|
|||
|
|
uint8_t NewIapFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̱<EFBFBD>־λ - 2022-01-05
|
|||
|
|
|
|||
|
|
uint8_t IapErrFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
|
|||
|
|
uint8_t status; //״̬<D7B4><CCAC>
|
|||
|
|
uint8_t IapPercent; //<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õİٷֱ<D9B7>
|
|||
|
|
|
|||
|
|
uint8_t FtpFileNameLen; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
uint8_t FtpFileName[TFTP_File_Name_Size]; //<2F>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
|
uint8_t Md5[16]; //MD5ֵ
|
|||
|
|
|
|||
|
|
uint16_t TFTP_Port;
|
|||
|
|
|
|||
|
|
uint16_t BlockSize; //<2F><><EFBFBD><EFBFBD>С
|
|||
|
|
uint16_t Write_Block; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
uint32_t FlashWriteAddress; //<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
|
|||
|
|
uint32_t TotalCount; //<2F>ļ<EFBFBD><C4BC>ܴ<EFBFBD>С
|
|||
|
|
uint32_t WriteCount; //<2F>ļ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>С
|
|||
|
|
|
|||
|
|
uint32_t processing_tick; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
}IAPVarTypeStruct;
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
uint8_t op; /*WRQ */
|
|||
|
|
|
|||
|
|
uint8_t data[TFTP_DATA_LEN_MAX];
|
|||
|
|
|
|||
|
|
uint8_t to_ip[4];
|
|||
|
|
uint8_t retry_num;
|
|||
|
|
|
|||
|
|
uint16_t data_len;
|
|||
|
|
uint16_t to_port;
|
|||
|
|
|
|||
|
|
uint16_t block;
|
|||
|
|
|
|||
|
|
uint16_t tot_bytes;
|
|||
|
|
|
|||
|
|
uint32_t last_time;
|
|||
|
|
}tftp_connection_args;
|
|||
|
|
|
|||
|
|
|
|||
|
|
void Internal_TFTP_Task(void);
|
|||
|
|
|
|||
|
|
#endif /* NETLIB_TFTP_FUNCTION_H_ */
|