Files
RS485_T1_Transition/Source/SYSTEM/inc/Bootload_fun.h
yeyangwen 13980737e3 feat:修改设备类型
feat:修改为红外转发设备,将中弘网关协议转换为主机红外协议
2026-02-09 17:32:59 +08:00

89 lines
2.1 KiB
C

#ifndef _BOOTLOAD_FUNCTION_H_
#define _BOOTLOAD_FUNCTION_H_
#include "apt32f102.h"
#include "apt32f102_ifc.h"
#include "apt32f102_syscon.h"
#include "uart.h"
#define App_Procedure_Ready 0x66 //APP准备就绪标志位
#define APP_Flash_PageSize 0x100
#if DBG_LOG_EN
#define APP_Flash_StartAddr PROM_PageAdd96 //调试APP起始地址
#else
#define APP_Flash_StartAddr PROM_PageAdd40
#endif
#define APP_Flash_EndAddr PROM_PageAdd255
#define APP_FEATURE_Flash_Addr PROM_PageAdd255
#define MCU_EEPROM_PageSize 0x40
#define MCU_EEPROM_StartAddr DROM_PageAdd0
#define MCU_EEPROM_EndAddr (DROM_PageAdd31 + MCU_EEPROM_PageSize)
#define BCOMM_CMD_Handshake 0xC0
#define BCOMM_CMD_Jump 0xC1
#define BCOMM_CMD_SetInfo 0xC2
#define BCOMM_CMD_WriteFlash 0xC3
#define BCOMM_CMD_ReadFlash 0xC4
#define BCOMM_CMD_EraseFlash 0xC5
#define BCOMM_CMD_WriteEEPROM 0xC6
#define BCOMM_CMD_ReadEEPROM 0xC7
#define BCOMM_CMD_EraseEEPROM 0xC8
#define BCOMM_CMD_CheckData 0xC9
#define BCOMM_CMD_ReplySUCC 0x00
#define BCOMM_CMD_ReplyFAIL 0x01
#define BCOMM_ACKSize 300
#define BCOMM_ParaSize 280
typedef enum
{
BCOMM_FMT_TXAddr,
BCOMM_FMT_SN,
BCOMM_FMT_TYPE,
BCOMM_FMT_RXAddr,
BCOMM_FMT_LEN_L,
BCOMM_FMT_LEN_H,
BCOMM_FMT_CKS,
BCOMM_FMT_CMD,
BCOMM_FMT_PARAM,
}BOOT_COMM_FMT_e;
typedef struct{
U8_T jump_start;
U8_T sn;
U8_T cmd;
U8_T pc_addr;
U8_T ackBuffer[BCOMM_ACKSize];
U16_T ackLen;
U16_T ackValidity; //数据回复有效期
U32_T bootTimeout;
U32_T bootTick;
}BOOT_INFO_T;
typedef struct{
U8_T crcL_check;
U8_T crcH_check;
U8_T app_flag;
U8_T app_crc[241];
U16_T app_crc_size;
U16_T app_crc_len;
U32_T app_start_addr;
U32_T app_end_addr;
}APP_FEATURE_INFO_T; /*字节空间是256Byte*/
extern BOOT_INFO_T g_boot;
void Boot_Function_Init(void);
U8_T Boot_Comm_UpgradeProcess(U8_T *data,U16_T len);
void Boot_Time_Refresh(void);
void Boot_TimeOut_Task(void);
void Jump_To_APP(void);
U8_T Check_APP_Feature(void);
#endif