/* * * * * */ #ifndef _CONFIG_PROTOCAL_H_ #define _CONFIG_PROTOCAL_H_ /////////////////////////////////////////////////////////////////////////////////////// #include "bsp.h" /////////////////////////////////////////////////////////////////////////////////////// //EEROM address defination #define CONFIG_UART DEBUG_PORT #define CONFIG_UART_HANDLE &debug_UartHandle ///// #define MESSAGE_QUEUE 1 #define MAX_MESSAGE_LEN 264 #define MESSAGE_SLOT_COUNT 64 #if MESSAGE_SLOT_COUNT>64 #error "ERROR in configprotocal.c: MAX_BUF_COUNT for debug must be lower than 32!!!!" #endif /////// #define COMMAND_FRAME_TIMEOUT (10) /// #define PROTOCAL_HEAD_LENGTH 4 #define PROTOCAL_CHECKSUM_LENGTH 2 #define PROTOCAL_MIN_LENGTH 3 #define PROTOCAL_HEAD_FLAG 0x02 #define PROTOCAL_HEAD_ENCRYPT_FLAG 0x06 #define PROTOCAL_START_INDEX 0 #define PROTOCAL_LENLOW_INDEX 1 #define PROTOCAL_LENHIGH_INDEX 2 #define PROTOCAL_CMD_INDEX 3 #define PROTOCAL_DATASTART_INDEX 4 #define PROTOCAL_DISTWARN_INDEX 8 /////////////////////////////////////////////////////////////////////////////////////// typedef enum _bl_state_ { Inactive=0, Active=1, GoApp=0xea, }eBootLoaderState; typedef enum _cfg_bl_cmd_{ CFG_COMMAND_READMEMORY = 0x10, CFG_COMMAND_EARSEPAGE = 0x11, CFG_COMMAND_WRITESTART = 0x12, CFG_COMMAND_WRITEMEMORY = 0x13, CFG_COMMAND_WRITEFINISH = 0x14, CFG_COMMAND_RESETSIGN = 0x1f, CFG_COMMAND_GETWRPROTECTION =0x20, CFG_COMMAND_WRITEPROTECT = 0x21, CFG_COMMAND_WRITEUNPROTECT = 0x22, CFG_COMMAND_GETRDPROTECTION =0x28, CFG_COMMAND_READOUTPROTECT = 0x29, CFG_COMMAND_READOUTUNPROTECT = 0x2a, CFG_COMMAND_SETTINGRESPONES = 0x7f, //General information CFG_COMMAND_REPORTRANGE = 0x80, CFG_COMMAND_GETINFORM = 0x81, CFG_COMMAND_TIMESET = 0x82, CFG_COMMAND_GETTIME = 0x83, CFG_COMMAND_TAGCOMMAND = 0x84, //Download BL CFG_COMMAND_WRITEBLSTART = 0x90, CFG_COMMAND_WRITEBLMEMORY = 0x91, CFG_COMMAND_WRITEBLFINISH = 0x92, //Get config CFG_COMMAND_GETCONFIGRANGE = 0xb0, //DMW CFG_COMMAND_GETCONFIGETHDBGSERVER = 0xb3, //ETH DBG SERVER IPPORT CFG_COMMAND_GETCONFIGETHSERVER = 0xb4, //ETH SERVER IPPORT CFG_COMMAND_GETCONFIGETHLOCAL = 0xb5, //ETH LOCAL IPPORT... CFG_COMMAND_GETCONFIGETHMAC = 0xb6, //ETHMAC CFG_COMMAND_GETCONFIGAPSSID = 0xb8, //WIFI SSID CFG_COMMAND_GETCONFIGAPPSWD = 0xb9, //WIFI PSWD CFG_COMMAND_GETCONFIGWIFISERVER = 0xba, //WIFI SERVER IP/PORT CFG_COMMAND_GETCONFIGWIFILOCAL = 0xbb, //WIFI LOCAL IP/PORT... //Set config CFG_COMMAND_CONFIGRANGE = 0xc0, //DMW CFG_COMMAND_CONFIGETHDBGSERVER = 0xc3, //ETH DBG SERVER IPPORT CFG_COMMAND_CONFIGETHSERVER = 0xc4, //ETH SERVER IPPORT CFG_COMMAND_CONFIGETHLOCAL = 0xc5, //ETH LOCAL IPPORT... CFG_COMMAND_CONFIGETHMAC = 0xc6, //ETHMAC CFG_COMMAND_CONFIGAPSSID = 0xc8, //WIFI SSID CFG_COMMAND_CONFIGAPPSWD = 0xc9, //WIFI PSWD CFG_COMMAND_CONFIGWIFISERVER = 0xca, //WIFI SERVER IP/PORT CFG_COMMAND_CONFIGWIFILOCAL = 0xcb, //WIFI LOCAL IP/PORT... //Action CFG_COMMAND_GOAPP = 0xe0, CFG_COMMAND_RESET = 0xe1, CFG_COMMAND_STARTLOADER = 0xef, //Test CFG_COMMAND_TESTLED = 0xf0, CFG_COMMAND_TESTKEY = 0xf1, CFG_COMMAND_TESTSCREEN = 0xf2, CFG_COMMAND_TESTENVIROMENT = 0xf3, //ADC,temprature,... CFG_COMMAND_WRITEINFORMATION = 0xfe, CFG_COMMAND_HELP = 0xff, }eConfigurationCommand; typedef struct _bl_writememory_status { uint32_t fileAddress; // 写入地址 uint32_t fileTotalLength; //文件总长度 uint32_t fileLength; //文件当前写入长度 uint32_t datapackLength; //分片的长度 uint32_t datapackIndex; //当前分片序号 }stWriteMemoryStatus; /////////////////////////////////////////////////////////////////////////////////////// extern volatile uint32_t cmdStartTime; extern uint32_t resetFlag; /////////////////////////////////////////////////////////////////////////////////////// void ProtocalRun(void); void DebugRun(void); int32_t DataPackageHeadHandler(uint8_t* buf, uint32_t len); int32_t DataPackageCompleteHandler(uint8_t* buf, uint32_t len, uint8_t* retbuf, uint32_t* retlen); void DebugMessage(uint8_t* msg); void ReportMessage(uint8_t* msg, uint32_t len); void ReportString(uint8_t* msg); extern uint32_t GetBootloaderStatus(void); extern void SetBootloaderStatus(uint8_t status); void ClearReceiveBuffer(); int BuildSettingResponse(uint32_t cmd, int32_t status, uint8_t* retbuf, uint32_t* retlen); #endif //_CONFIG_PROTOCAL_H_