configprotocal.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /*
  2. *
  3. *
  4. *
  5. *
  6. */
  7. #ifndef _CONFIG_PROTOCAL_H_
  8. #define _CONFIG_PROTOCAL_H_
  9. ///////////////////////////////////////////////////////////////////////////////////////
  10. #include "bsp.h"
  11. ///////////////////////////////////////////////////////////////////////////////////////
  12. //EEROM address defination
  13. #define CONFIG_UART DEBUG_PORT
  14. #define CONFIG_UART_HANDLE &debug_UartHandle
  15. /////
  16. #define MESSAGE_QUEUE 1
  17. #define MAX_MESSAGE_LEN 264
  18. #define MESSAGE_SLOT_COUNT 64
  19. #if MESSAGE_SLOT_COUNT>64
  20. #error "ERROR in configprotocal.c: MAX_BUF_COUNT for debug must be lower than 32!!!!"
  21. #endif
  22. ///////
  23. #define COMMAND_FRAME_TIMEOUT (10)
  24. ///
  25. #define PROTOCAL_HEAD_LENGTH 4
  26. #define PROTOCAL_CHECKSUM_LENGTH 2
  27. #define PROTOCAL_MIN_LENGTH 3
  28. #define PROTOCAL_HEAD_FLAG 0x02
  29. #define PROTOCAL_HEAD_ENCRYPT_FLAG 0x06
  30. #define PROTOCAL_START_INDEX 0
  31. #define PROTOCAL_LENLOW_INDEX 1
  32. #define PROTOCAL_LENHIGH_INDEX 2
  33. #define PROTOCAL_CMD_INDEX 3
  34. #define PROTOCAL_DATASTART_INDEX 4
  35. #define PROTOCAL_DISTWARN_INDEX 8
  36. ///////////////////////////////////////////////////////////////////////////////////////
  37. typedef enum _bl_state_
  38. {
  39. Inactive=0,
  40. Active=1,
  41. GoApp=0xea,
  42. }eBootLoaderState;
  43. typedef enum _cfg_bl_cmd_{
  44. CFG_COMMAND_READMEMORY = 0x10,
  45. CFG_COMMAND_EARSEPAGE = 0x11,
  46. CFG_COMMAND_WRITESTART = 0x12,
  47. CFG_COMMAND_WRITEMEMORY = 0x13,
  48. CFG_COMMAND_WRITEFINISH = 0x14,
  49. CFG_COMMAND_RESETSIGN = 0x1f,
  50. CFG_COMMAND_GETWRPROTECTION =0x20,
  51. CFG_COMMAND_WRITEPROTECT = 0x21,
  52. CFG_COMMAND_WRITEUNPROTECT = 0x22,
  53. CFG_COMMAND_GETRDPROTECTION =0x28,
  54. CFG_COMMAND_READOUTPROTECT = 0x29,
  55. CFG_COMMAND_READOUTUNPROTECT = 0x2a,
  56. CFG_COMMAND_SETTINGRESPONES = 0x7f,
  57. //General information
  58. CFG_COMMAND_REPORTRANGE = 0x80,
  59. CFG_COMMAND_GETINFORM = 0x81,
  60. CFG_COMMAND_TIMESET = 0x82,
  61. CFG_COMMAND_GETTIME = 0x83,
  62. CFG_COMMAND_TAGCOMMAND = 0x84,
  63. //Download BL
  64. CFG_COMMAND_WRITEBLSTART = 0x90,
  65. CFG_COMMAND_WRITEBLMEMORY = 0x91,
  66. CFG_COMMAND_WRITEBLFINISH = 0x92,
  67. //Get config
  68. CFG_COMMAND_GETCONFIGRANGE = 0xb0, //DMW
  69. CFG_COMMAND_GETCONFIGETHDBGSERVER = 0xb3, //ETH DBG SERVER IPPORT
  70. CFG_COMMAND_GETCONFIGETHSERVER = 0xb4, //ETH SERVER IPPORT
  71. CFG_COMMAND_GETCONFIGETHLOCAL = 0xb5, //ETH LOCAL IPPORT...
  72. CFG_COMMAND_GETCONFIGETHMAC = 0xb6, //ETHMAC
  73. CFG_COMMAND_GETCONFIGAPSSID = 0xb8, //WIFI SSID
  74. CFG_COMMAND_GETCONFIGAPPSWD = 0xb9, //WIFI PSWD
  75. CFG_COMMAND_GETCONFIGWIFISERVER = 0xba, //WIFI SERVER IP/PORT
  76. CFG_COMMAND_GETCONFIGWIFILOCAL = 0xbb, //WIFI LOCAL IP/PORT...
  77. //Set config
  78. CFG_COMMAND_CONFIGRANGE = 0xc0, //DMW
  79. CFG_COMMAND_CONFIGETHDBGSERVER = 0xc3, //ETH DBG SERVER IPPORT
  80. CFG_COMMAND_CONFIGETHSERVER = 0xc4, //ETH SERVER IPPORT
  81. CFG_COMMAND_CONFIGETHLOCAL = 0xc5, //ETH LOCAL IPPORT...
  82. CFG_COMMAND_CONFIGETHMAC = 0xc6, //ETHMAC
  83. CFG_COMMAND_CONFIGAPSSID = 0xc8, //WIFI SSID
  84. CFG_COMMAND_CONFIGAPPSWD = 0xc9, //WIFI PSWD
  85. CFG_COMMAND_CONFIGWIFISERVER = 0xca, //WIFI SERVER IP/PORT
  86. CFG_COMMAND_CONFIGWIFILOCAL = 0xcb, //WIFI LOCAL IP/PORT...
  87. //Action
  88. CFG_COMMAND_GOAPP = 0xe0,
  89. CFG_COMMAND_RESET = 0xe1,
  90. CFG_COMMAND_STARTLOADER = 0xef,
  91. //Test
  92. CFG_COMMAND_TESTLED = 0xf0,
  93. CFG_COMMAND_TESTKEY = 0xf1,
  94. CFG_COMMAND_TESTSCREEN = 0xf2,
  95. CFG_COMMAND_TESTENVIROMENT = 0xf3, //ADC,temprature,...
  96. CFG_COMMAND_WRITEINFORMATION = 0xfe,
  97. CFG_COMMAND_HELP = 0xff,
  98. }eConfigurationCommand;
  99. typedef struct _bl_writememory_status
  100. {
  101. uint32_t fileAddress; // 写入地址
  102. uint32_t fileTotalLength; //文件总长度
  103. uint32_t fileLength; //文件当前写入长度
  104. uint32_t datapackLength; //分片的长度
  105. uint32_t datapackIndex; //当前分片序号
  106. }stWriteMemoryStatus;
  107. ///////////////////////////////////////////////////////////////////////////////////////
  108. extern volatile uint32_t cmdStartTime;
  109. extern uint32_t resetFlag;
  110. ///////////////////////////////////////////////////////////////////////////////////////
  111. void ProtocalRun(void);
  112. void DebugRun(void);
  113. int32_t DataPackageHeadHandler(uint8_t* buf, uint32_t len);
  114. int32_t DataPackageCompleteHandler(uint8_t* buf, uint32_t len, uint8_t* retbuf, uint32_t* retlen);
  115. void DebugMessage(uint8_t* msg);
  116. void ReportMessage(uint8_t* msg, uint32_t len);
  117. void ReportString(uint8_t* msg);
  118. extern uint32_t GetBootloaderStatus(void);
  119. extern void SetBootloaderStatus(uint8_t status);
  120. void ClearReceiveBuffer();
  121. int BuildSettingResponse(uint32_t cmd, int32_t status, uint8_t* retbuf, uint32_t* retlen);
  122. #endif //_CONFIG_PROTOCAL_H_