Browse Source

bootloader-OTA-rev-status-ok

bootloader
ws-Huang 6 months ago
parent
commit
2d61510c2b
84 changed files with 3065 additions and 2800 deletions
  1. +101
    -44
      LT7689.uvguix.14874
  2. +759
    -752
      Listings/LT7689.map
  3. BIN
      OBJ/bin/MCU_Code.bin
  4. BIN
      OBJ/obj_debug_efm/LT7689.axf
  5. +2
    -11
      OBJ/obj_debug_efm/LT7689.build_log.htm
  6. +1022
    -1026
      OBJ/obj_debug_efm/LT7689.hex
  7. +795
    -787
      OBJ/obj_debug_efm/LT7689.htm
  8. +5
    -5
      OBJ/obj_debug_efm/LT7689_LT7689.dep
  9. BIN
      OBJ/obj_debug_efm/adc_dma.o
  10. BIN
      OBJ/obj_debug_efm/adc_drv.o
  11. BIN
      OBJ/obj_debug_efm/alg_drv.o
  12. BIN
      OBJ/obj_debug_efm/bitstream.o
  13. BIN
      OBJ/obj_debug_efm/cache_drv.o
  14. BIN
      OBJ/obj_debug_efm/ccm_drv.o
  15. BIN
      OBJ/obj_debug_efm/common.o
  16. BIN
      OBJ/obj_debug_efm/cpm_drv.o
  17. BIN
      OBJ/obj_debug_efm/crc.o
  18. BIN
      OBJ/obj_debug_efm/crc_drv.o
  19. BIN
      OBJ/obj_debug_efm/dac_drv.o
  20. BIN
      OBJ/obj_debug_efm/data.o
  21. BIN
      OBJ/obj_debug_efm/delay.o
  22. BIN
      OBJ/obj_debug_efm/diskio.o
  23. BIN
      OBJ/obj_debug_efm/dma.o
  24. BIN
      OBJ/obj_debug_efm/dmac_drv.o
  25. BIN
      OBJ/obj_debug_efm/edma_drv.o
  26. BIN
      OBJ/obj_debug_efm/eflash_drv.o
  27. BIN
      OBJ/obj_debug_efm/eport_drv.o
  28. BIN
      OBJ/obj_debug_efm/ff.o
  29. BIN
      OBJ/obj_debug_efm/ffunicode.o
  30. BIN
      OBJ/obj_debug_efm/flash.o
  31. BIN
      OBJ/obj_debug_efm/i2c_drv.o
  32. BIN
      OBJ/obj_debug_efm/if_port.o
  33. BIN
      OBJ/obj_debug_efm/iic.o
  34. BIN
      OBJ/obj_debug_efm/ioctrl_drv.o
  35. BIN
      OBJ/obj_debug_efm/lt768.o
  36. BIN
      OBJ/obj_debug_efm/lt768_lib.o
  37. BIN
      OBJ/obj_debug_efm/main.crf
  38. BIN
      OBJ/obj_debug_efm/main.o
  39. BIN
      OBJ/obj_debug_efm/mask.o
  40. BIN
      OBJ/obj_debug_efm/mmask.o
  41. BIN
      OBJ/obj_debug_efm/mqrspec.o
  42. BIN
      OBJ/obj_debug_efm/ota.crf
  43. BIN
      OBJ/obj_debug_efm/ota.o
  44. BIN
      OBJ/obj_debug_efm/pci_drv.o
  45. BIN
      OBJ/obj_debug_efm/pit.o
  46. BIN
      OBJ/obj_debug_efm/pit32_drv.o
  47. BIN
      OBJ/obj_debug_efm/pwm_drv.o
  48. BIN
      OBJ/obj_debug_efm/qr_encode.o
  49. BIN
      OBJ/obj_debug_efm/qrencode.o
  50. BIN
      OBJ/obj_debug_efm/qrinput.o
  51. BIN
      OBJ/obj_debug_efm/qrspec.o
  52. BIN
      OBJ/obj_debug_efm/reset_drv.o
  53. BIN
      OBJ/obj_debug_efm/rscode.o
  54. BIN
      OBJ/obj_debug_efm/rtc_drv.o
  55. BIN
      OBJ/obj_debug_efm/sincostable.o
  56. BIN
      OBJ/obj_debug_efm/spi_drv.o
  57. BIN
      OBJ/obj_debug_efm/spi_sd.o
  58. BIN
      OBJ/obj_debug_efm/split.o
  59. BIN
      OBJ/obj_debug_efm/ssi_drv.o
  60. BIN
      OBJ/obj_debug_efm/sys.o
  61. BIN
      OBJ/obj_debug_efm/system_armcm4.o
  62. BIN
      OBJ/obj_debug_efm/systick_drv.o
  63. BIN
      OBJ/obj_debug_efm/tc_drv.o
  64. BIN
      OBJ/obj_debug_efm/tp_drv.o
  65. BIN
      OBJ/obj_debug_efm/trng_drv.o
  66. BIN
      OBJ/obj_debug_efm/uart.o
  67. BIN
      OBJ/obj_debug_efm/uart_drv.o
  68. BIN
      OBJ/obj_debug_efm/uart_vcom.o
  69. BIN
      OBJ/obj_debug_efm/updata.o
  70. BIN
      OBJ/obj_debug_efm/usb_ccid_config.o
  71. BIN
      OBJ/obj_debug_efm/usb_ccid_contril.o
  72. BIN
      OBJ/obj_debug_efm/usb_cdc_config.o
  73. BIN
      OBJ/obj_debug_efm/usb_cdc_control.o
  74. BIN
      OBJ/obj_debug_efm/usb_drv.o
  75. BIN
      OBJ/obj_debug_efm/usb_hid_control.o
  76. BIN
      OBJ/obj_debug_efm/usb_hid_isr.o
  77. BIN
      OBJ/obj_debug_efm/usb_ms_config.o
  78. BIN
      OBJ/obj_debug_efm/usb_ms_control.o
  79. BIN
      OBJ/obj_debug_efm/usbdev_control.o
  80. BIN
      OBJ/obj_debug_efm/usbdev_isr.o
  81. BIN
      OBJ/obj_debug_efm/wdt_drv.o
  82. +2
    -2
      User/OTA_H.h
  83. +212
    -99
      User/main.c
  84. +167
    -74
      User/ota.c

+ 101
- 44
LT7689.uvguix.14874
File diff suppressed because it is too large
View File


+ 759
- 752
Listings/LT7689.map
File diff suppressed because it is too large
View File


BIN
OBJ/bin/MCU_Code.bin View File


BIN
OBJ/obj_debug_efm/LT7689.axf View File


+ 2
- 11
OBJ/obj_debug_efm/LT7689.build_log.htm View File

@ -27,17 +27,8 @@ Project File Date: 04/29/2025
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil5Mdk\Keil5_MDK\ARM\ARMCC\Bin'
Build target 'LT7689'
compiling main.c...
User\main.c(264): warning: #550-D: variable "clear_idle_flag" was set but never used
uint8_t clear_idle_flag;
User\main.c(66): warning: #177-D: function "Printf_Version" was declared but never referenced
static void Printf_Version(void)
User\main.c: 2 warnings, 0 errors
linking...
Program Size: Code=16236 RO-data=368 RW-data=264 ZI-data=52608
FromELF: creating hex file...
After Build - User command #1: fromelf.exe --bin -o ./OBJ/bin/MCU_Code.bin ./OBJ/obj_debug_efm/LT7689.axf
".\OBJ\obj_debug_efm\LT7689.axf" - 0 Error(s), 2 Warning(s).
".\OBJ\obj_debug_efm\LT7689.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2>
@ -50,7 +41,7 @@ Package Vendor: ARM
D:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:02
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

+ 1022
- 1026
OBJ/obj_debug_efm/LT7689.hex
File diff suppressed because it is too large
View File


+ 795
- 787
OBJ/obj_debug_efm/LT7689.htm
File diff suppressed because it is too large
View File


+ 5
- 5
OBJ/obj_debug_efm/LT7689_LT7689.dep View File

@ -1,6 +1,6 @@
Dependencies for Project 'LT7689', Target 'LT7689': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\User\main.c)(0x683EB559)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\main.o --omf_browse .\obj\obj_debug_efm\main.crf --depend .\obj\obj_debug_efm\main.d)
F (.\User\main.c)(0x68428C76)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\main.o --omf_browse .\obj\obj_debug_efm\main.crf --depend .\obj\obj_debug_efm\main.d)
I (D:\keil5Mdk\Keil5_MDK\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2)
I (.\ccore\common\sys.h)(0x67B2F52B)
I (.\ccore\LT7689_C.h)(0x67B2F52B)
@ -56,7 +56,7 @@ I (.\MCU_drv\drv\inc\wdt_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\usb_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\usb_reg.h)(0x67B2F52B)
I (User\UI_H.h)(0x681072CC)
I (User\OTA_H.h)(0x683E6AF5)
I (User\OTA_H.h)(0x68414D1F)
I (User\meg.h)(0x681072DA)
I (User\CRC.h)(0x62FCA25A)
I (User\cpm_drv.h)(0x5DF1B6F4)
@ -71,7 +71,7 @@ I (.\MCU_drv\drv\inc\reset_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\reset_reg.h)(0x67B2F52B)
F (.\User\module_select.h)(0x67CFA11F)()
F (.\User\UI_H.h)(0x681072CC)()
F (.\User\OTA_H.h)(0x683E6AF5)()
F (.\User\OTA_H.h)(0x68414D1F)()
F (.\User\meg.h)(0x681072DA)()
F (.\User\cpm_drv.h)(0x5DF1B6F4)()
F (.\User\Updata.h)(0x680F2D55)()
@ -304,8 +304,8 @@ I (User\ffconf.h)(0x63E610EE)
I (User\SPI_SD.h)(0x681072D7)
I (User\diskio.h)(0x6367B56C)
I (User\CRC.h)(0x62FCA25A)
F (.\User\ota.c)(0x683E6AC2)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\ota.o --omf_browse .\obj\obj_debug_efm\ota.crf --depend .\obj\obj_debug_efm\ota.d)
I (User\OTA_H.h)(0x683E6AF5)
F (.\User\ota.c)(0x68416AF8)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\ota.o --omf_browse .\obj\obj_debug_efm\ota.crf --depend .\obj\obj_debug_efm\ota.d)
I (User\OTA_H.h)(0x68414D1F)
I (.\MCU_drv\drv\inc\eflash_drv.h)(0x67B2F52B)
I (.\ccore\common\type.h)(0x67B2F52B)
I (.\ccore\LT7689_C.h)(0x67B2F52B)

BIN
OBJ/obj_debug_efm/adc_dma.o View File


BIN
OBJ/obj_debug_efm/adc_drv.o View File


BIN
OBJ/obj_debug_efm/alg_drv.o View File


BIN
OBJ/obj_debug_efm/bitstream.o View File


BIN
OBJ/obj_debug_efm/cache_drv.o View File


BIN
OBJ/obj_debug_efm/ccm_drv.o View File


BIN
OBJ/obj_debug_efm/common.o View File


BIN
OBJ/obj_debug_efm/cpm_drv.o View File


BIN
OBJ/obj_debug_efm/crc.o View File


BIN
OBJ/obj_debug_efm/crc_drv.o View File


BIN
OBJ/obj_debug_efm/dac_drv.o View File


BIN
OBJ/obj_debug_efm/data.o View File


BIN
OBJ/obj_debug_efm/delay.o View File


BIN
OBJ/obj_debug_efm/diskio.o View File


BIN
OBJ/obj_debug_efm/dma.o View File


BIN
OBJ/obj_debug_efm/dmac_drv.o View File


BIN
OBJ/obj_debug_efm/edma_drv.o View File


BIN
OBJ/obj_debug_efm/eflash_drv.o View File


BIN
OBJ/obj_debug_efm/eport_drv.o View File


BIN
OBJ/obj_debug_efm/ff.o View File


BIN
OBJ/obj_debug_efm/ffunicode.o View File


BIN
OBJ/obj_debug_efm/flash.o View File


BIN
OBJ/obj_debug_efm/i2c_drv.o View File


BIN
OBJ/obj_debug_efm/if_port.o View File


BIN
OBJ/obj_debug_efm/iic.o View File


BIN
OBJ/obj_debug_efm/ioctrl_drv.o View File


BIN
OBJ/obj_debug_efm/lt768.o View File


BIN
OBJ/obj_debug_efm/lt768_lib.o View File


BIN
OBJ/obj_debug_efm/main.crf View File


BIN
OBJ/obj_debug_efm/main.o View File


BIN
OBJ/obj_debug_efm/mask.o View File


BIN
OBJ/obj_debug_efm/mmask.o View File


BIN
OBJ/obj_debug_efm/mqrspec.o View File


BIN
OBJ/obj_debug_efm/ota.crf View File


BIN
OBJ/obj_debug_efm/ota.o View File


BIN
OBJ/obj_debug_efm/pci_drv.o View File


BIN
OBJ/obj_debug_efm/pit.o View File


BIN
OBJ/obj_debug_efm/pit32_drv.o View File


BIN
OBJ/obj_debug_efm/pwm_drv.o View File


BIN
OBJ/obj_debug_efm/qr_encode.o View File


BIN
OBJ/obj_debug_efm/qrencode.o View File


BIN
OBJ/obj_debug_efm/qrinput.o View File


BIN
OBJ/obj_debug_efm/qrspec.o View File


BIN
OBJ/obj_debug_efm/reset_drv.o View File


BIN
OBJ/obj_debug_efm/rscode.o View File


BIN
OBJ/obj_debug_efm/rtc_drv.o View File


BIN
OBJ/obj_debug_efm/sincostable.o View File


BIN
OBJ/obj_debug_efm/spi_drv.o View File


BIN
OBJ/obj_debug_efm/spi_sd.o View File


BIN
OBJ/obj_debug_efm/split.o View File


BIN
OBJ/obj_debug_efm/ssi_drv.o View File


BIN
OBJ/obj_debug_efm/sys.o View File


BIN
OBJ/obj_debug_efm/system_armcm4.o View File


BIN
OBJ/obj_debug_efm/systick_drv.o View File


BIN
OBJ/obj_debug_efm/tc_drv.o View File


BIN
OBJ/obj_debug_efm/tp_drv.o View File


BIN
OBJ/obj_debug_efm/trng_drv.o View File


BIN
OBJ/obj_debug_efm/uart.o View File


BIN
OBJ/obj_debug_efm/uart_drv.o View File


BIN
OBJ/obj_debug_efm/uart_vcom.o View File


BIN
OBJ/obj_debug_efm/updata.o View File


BIN
OBJ/obj_debug_efm/usb_ccid_config.o View File


BIN
OBJ/obj_debug_efm/usb_ccid_contril.o View File


BIN
OBJ/obj_debug_efm/usb_cdc_config.o View File


BIN
OBJ/obj_debug_efm/usb_cdc_control.o View File


BIN
OBJ/obj_debug_efm/usb_drv.o View File


BIN
OBJ/obj_debug_efm/usb_hid_control.o View File


BIN
OBJ/obj_debug_efm/usb_hid_isr.o View File


BIN
OBJ/obj_debug_efm/usb_ms_config.o View File


BIN
OBJ/obj_debug_efm/usb_ms_control.o View File


BIN
OBJ/obj_debug_efm/usbdev_control.o View File


BIN
OBJ/obj_debug_efm/usbdev_isr.o View File


BIN
OBJ/obj_debug_efm/wdt_drv.o View File


+ 2
- 2
User/OTA_H.h View File

@ -13,7 +13,7 @@
extern void SaveData(void);
extern unsigned char GetAdjdata(unsigned int addr); // 512B 0.5KB
extern unsigned int ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned int flash_addr);
extern unsigned char ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned int flash_addr);
extern void SCI1_DMA_Init(unsigned int pclk,unsigned int bound);
extern void SCI3_DMA_Init(unsigned int pclk,unsigned int bound);
extern unsigned int ota_ui(unsigned int addr , unsigned char * ota_lt_buf , unsigned int length,unsigned short offset);
@ -37,7 +37,7 @@ extern unsigned char datalength;
extern unsigned char wifi_buf[256] ;
extern unsigned char mes_length ;
extern unsigned char inf_wifi_buf[20] ;
extern unsigned char inf_wifi_buf_length ;
//extern unsigned char inf_wifi_buf_length ;
extern unsigned short ota_seq ;
extern unsigned char inf_wifi_ack(unsigned char * inf_wifi_buf,unsigned char pkg_seq);
extern unsigned char send_meg_wifi(unsigned char * send_buf,unsigned char length);

+ 212
- 99
User/main.c View File

@ -60,6 +60,7 @@ unsigned int ota_lt7689_length1 =0;
unsigned int ota_lt7689_length2 =0;
unsigned int ota_address = 0;
#define LT_APP 0x08010000
#define LT_APP2 0x8049000
unsigned int ota_offset = 0;
/********************************************/
@ -174,8 +175,8 @@ iapfun jump2app;
void APP(u32 appxaddr)
{
// printf("***enter app()***\r\n");
Disable_Interrupts;
__set_PRIMASK(1);
// Disable_Interrupts;
// __set_PRIMASK(1);
jump2app = (iapfun)*(vu32*)(appxaddr + 4);
@ -183,12 +184,12 @@ void APP(u32 appxaddr)
// printf("***ready jumpapp()***\r\n");
// DCACHE_Init(cacheOff, cacheOff, cacheOff, cacheOff);
// ICACHE_Init(cacheOff, cacheOff, cacheOff, cacheOff);
WDT_FeedDog();
// WDT_FeedDog();
DelayMS(10);
// printf("***ready jumpapp()***\r\n");
jump2app();
// printf("***ready jumpapp() fail\r\n");
Enable_Interrupts
// Enable_Interrupts
}
void SCI1_Init(uint32_t pclk, uint32_t bound,uint8_t parity)
@ -348,6 +349,13 @@ extern unsigned int ui_addr;
extern unsigned char last_flag;
extern unsigned char dma_flag;
//unsigned char flash[2050] = {0};
unsigned char write_eflash =0;
unsigned char send_wifi_one = 1;
unsigned char ota_check[300];
unsigned int ota_check_len = 0;
unsigned char rev_check_number =0;
unsigned char wri_check_number =0;
int main(void)
{
@ -361,11 +369,11 @@ int main(void)
// SCI2_Init(g_ips_clk, 115200,0);
SCI3_Init(g_ips_clk,38400 ,0);
/********************升级*******************/
ota_address = LT_APP;
// ota_address = LT_APP;
Make_CRC32_Table();
ota_address = 0x08010000;
printf("***bootloader1!!**\r\n");
ota_address = APP_ADDR;//0x8049000;//0x08010000; APP2_ADDR APP_ADDR
printf("***bootloader2!!**\r\n");
// SCI3_DMA_Init(g_ips_clk,38400);
//SCI3_DMA_Init(g_ips_clk,921600);//921600 38400
@ -919,49 +927,51 @@ int main(void)
display_manu(0);
printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
// for(unsigned short i = 0 ; i < 512 ; i++)
// printf(" %x",Rx_Buffer_short[i]);
// printf("--------------\r\n");
// for(unsigned short i = 0 ; i < 512 ; i++)
// printf(" %x",Rx_Buffer1_short[i]);
// printf("--------------\r\n");
// char debug[256] = {0xA5,0x5A,0x01,0x0E,0x20,0xCD,0x02,0x01,0x00,0x00,0xC8,0x3A,0x7A,0xAC,0xFF 0x02 0x59 0x0F 0x90 0xF7 0x65 0xE0 0x44 0x80 0xF0 0x22 0x02 0x55 0x0D 0x12 0x79 0x00 0x12 0x5B 0xFE 0xD2 0xC5 0x12 0x5B 0xFE 0x00 0x00 0x12 0x77 0x6D 0x00 0x00 0x00 0x00 0x22 0x02 0x4C 0x57 0x90 0xF1 0x26 0xE0 0xFE 0xEF 0xF4 0xFF 0xEE 0x5F 0xF0 0x22 0x00 0x02 0x4E 0x7A 0xEF 0x14 0x60 0x22 0x14 0x60 0x31 0x14 0x60 40 14 60 4F 14 60 5E 24 05 70 6B EC 90 F1 31 F0 90 F1 30 ED F0 90 F1 29 E0 44 01 F0 22 EC 90 F1 33 F0 90 F1 32 ED F0 90 F1 29 E0 44 02 F0 22 EC 90 F1 35 F0 90 F1 34 ED F0 90 F1 29 E0 44 04 F0 22 EC 90 F1 37 F0 90 F1 36 ED F0 90 F1 29 E0 44 08 F0 22 EC 90 F1 39 F0 90 F1 38 ED F0 90 F1 29 E0 44 10 F0 22 EC 90 F1 3B F0 90 F1 3A ED F0 90 F1 29 E0 44 20 F0 22 D2 60 02 68 CE 02 41 DB 90 06 36 E4 F0 A3};
// unsigned char check_number = CalCheckSum(debug,12);
// printf("check_number: %x\r\n",check_number);
//A5 5A 01 1B 20 06 01 01 00 00 7A 3E FB
while(1)
{
WDT_FeedDog();
// printf("f:%d\r\n",ota_lt7689_flag);
if(Run_Boot_ID ==0x12345678) //Run_Boot_ID == 0x47210659 0x12345678 Run_Boot_ID ==0x12345678
{
WDT_FeedDog();
if(send_wifi_one==1)
{
send_wifi_one = 0;
mes_length =0;
ota_lt7689_flag = 0;
printf("start updata\r\n");
unsigned char length1=inf_wifi_ota_start(inf_wifi_buf, pkg_seq);
send_meg_wifi(inf_wifi_buf, length1);
}
if(ota_lt7689_flag==1)
{
// printf("ota_flag=%d\r\n",ota_lt7689_flag);
#if 0 //跳转程序
if((Rx_Buffer_short[0]==0xA5)&&
(Rx_Buffer_short[1]==0x5A)&&
(Rx_Buffer_short[2]==0x08)&&
(Rx_Buffer_short[3]==0x01)&&
(Rx_Buffer_short[4]==0x00)&&
(Rx_Buffer_short[5]==0x00)&&
(Rx_Buffer_short[6]==0xFF)&&
(Rx_Buffer_short[7]==0xFE)
if((wifi_buf[0]==0xA5)&&
(wifi_buf[1]==0x5A)&&
(wifi_buf[2]==0x08)&&
(wifi_buf[3]==0x01)&&
(wifi_buf[4]==0x00)&&
(wifi_buf[5]==0x00)&&
(wifi_buf[6]==0xFF)&&
(wifi_buf[7]==0xFE)
)
{
printf("enter APP_ADDR!\r\n");
APP(APP_ADDR);
}
else if((Rx_Buffer_short[0]==0xA5)&&
(Rx_Buffer_short[1]==0x5A)&&
(Rx_Buffer_short[2]==0x08)&&
(Rx_Buffer_short[3]==0x04)&&
(Rx_Buffer_short[4]==0x90)&&
(Rx_Buffer_short[5]==0x00)&&
(Rx_Buffer_short[6]==0xFF)&&
(Rx_Buffer_short[7]==0xFE)
else if((wifi_buf[0]==0xA5)&&
(wifi_buf[1]==0x5A)&&
(wifi_buf[2]==0x08)&&
(wifi_buf[3]==0x04)&&
(wifi_buf[4]==0x90)&&
(wifi_buf[5]==0x00)&&
(wifi_buf[6]==0xFF)&&
(wifi_buf[7]==0xFE)
)
{
printf("enter APP2_ADDR!\r\n");
@ -1080,37 +1090,7 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
// printf("number=%d\r\n",number);
#if 1 //3-enhance //211
//
// ota_analysis(Rx_Buffer_short,Rx_Count_short);
// printf("\r\n--------\r\n");
// for(unsigned char i = 0 ; i < Rx_Count_short; i++)
// printf(" %x",Rx_Buffer_short[i]);
// printf("\r\n %x \r\n",CalCheckSum(Rx_Buffer_short,Rx_Count_short-1));
// if(Rx_Count_short<200)
// {
// printf("all: %d\r\n",);
// }
// pkg_seq = 0;
// Rx_Count_short=0;
// ota_lt7689_flag=0;
// 收到WIFI开始升级报文
//收到WIFI固件发送完成
//收到WIFI 请求固件失败
//收到WIFI OTA超时
//收到WIFI 发送固件内容
#if 1 //3-enhance //211
/*******************rev_status**********************/
// 判断校验码是否准确
@ -1150,10 +1130,10 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
send_length++;
// inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
// send_length++;
inf_wifi_buf_length = 0; // ACK
// inf_wifi_buf_length = 0; // ACK
mes_length =0;
ota_lt7689_flag = 0;
send_meg_wifi(inf_wifi_buf,send_length);
@ -1174,10 +1154,11 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
// printf(" %x",inf_wifi_buf[i]);
// }
// printf("\r\n---\r\n");
inf_wifi_buf_length = 0;
// inf_wifi_buf_length = 0;
mes_length =0;
ota_lt7689_flag = 0;
printf("start updata\r\n");
send_meg_wifi(inf_wifi_buf, length);
}
@ -1200,43 +1181,131 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
// printf("\r\n");
#if 1 //bin文件
//计算升级包信息 1.bin地址 2.bin长度 wifi_buf[10]bin长度 3.写入flash地址
unsigned char * ota_buf_address = &wifi_buf[11];
unsigned int ota_offset = wifi_buf[10];
unsigned int ota_flash_addr = ota_address;
unsigned int ota_offset = wifi_buf[10];
unsigned int ota_flash_addr = ota_address;
unsigned short len = wifi_buf[10];
printf("len:%d addr:%x\r\n",ota_offset,ota_flash_addr);
//写 flash
ota_lt7689(ota_buf_address,ota_offset,ota_flash_addr);
// write_eflash = ota_lt7689(ota_buf_address,ota_offset,ota_flash_addr);
ota_lt7689(ota_buf_address,ota_offset,ota_flash_addr);
//回读校验
//EFLASH_WordsRead_8(UINT32 addr, UINT8 *des, UINT32 len)
//校验写入的eflash
// unsigned char ota_check[300];
// unsigned int ota_check_len = 0;
EFLASH_WordsRead_8(ota_address, ota_check, ota_offset);
rev_check_number = CalCheckSum( ota_buf_address, len);
wri_check_number = CalCheckSum( ota_check, len);
if(rev_check_number==wri_check_number)
{
printf("-ok\r\n");
}
else
{
printf("fail\r\n");
}
ota_address +=ota_offset;
ota_seq++;
// printf("write\r\n");
//封装ACK
pkg_seq = wifi_buf[3]; //包序号
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
// 发送ACK
mes_length =0;
ota_lt7689_flag = 0;
send_meg_wifi(inf_wifi_buf,send_length);
ota_seq++;
printf("---write\r\n");
#endif
#if 0 //UI
if((ui_addr%131072)==0)//128KB 擦除
{
W25N01GV_Erase_Block(block);
printf("block=%d\r\n",block);
block++;
}
for(offset=0;offset<Rx_Count_short;offset++)
{
ui_buf[offset+ui_offset]=Rx_Buffer_short[offset];
}
ui_offset+=Rx_Count_short;
ui_addr+=Rx_Count_short;
printf("addr=%x offset=%d \r\n",ui_addr,ui_offset);
if((ui_offset%2048==0))
{
W25N01GV_WritePageAddr_Data(ui_buf,0,page,2048);
printf("Write=%d\r\n",ui_offset);
ui_offset = 0;
printf("page=%d offset=%d\r\n",page,ui_offset);
page++;
}
else if (last_flag == 1)
{
W25N01GV_WritePageAddr_Data(ui_buf,0,page,ui_offset);
printf("Write=%d\r\n",ui_offset);
ui_offset = 0;
printf("page:%d offset:%d\r\n",page,ui_offset);
page++;
last_flag=0;
printf("ui_addr=%x\r\n",ui_addr);
}
Rx_Count_short=0;
ota_lt7689_flag=0;
#endif
}
//重复 相同序号的升级包
else
{
printf("***repeat!\r\n");
}
//封装ACK
pkg_seq = wifi_buf[3]; //包序号
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
send_length++;
// 发送ACK
inf_wifi_buf_length = 0; // ACK
mes_length =0;
ota_lt7689_flag = 0;
send_meg_wifi(inf_wifi_buf,send_length);
send_meg_wifi(inf_wifi_buf,send_length);
}
@ -1250,12 +1319,12 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
send_length++;
// inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
// send_length++;
// 发送ACK
inf_wifi_buf_length = 0; // ACK
// inf_wifi_buf_length = 0; // ACK
mes_length =0;
ota_lt7689_flag = 0;
ota_seq = 0;
@ -1267,13 +1336,19 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
//封装 固件升级成功消息
send_length =inf_wifi_finish( inf_wifi_buf , pkg_seq);
inf_wifi_buf_length = 0;
// inf_wifi_buf_length = 0;
//发送消息给wifi
send_meg_wifi(inf_wifi_buf,send_length);
// unsigned int tCRC = 0x21436587;
// EFLASH_PageErase(0x8009E00);//测试:擦除Flash前将标志位清除
// EFLASH_WordsProg(0x8009E00,&tCRC,1); //测试:校准成功后将标志位写入0x21436587
// EFLASH_ClrWritePermission();
Run_Boot_ID=0x00000000;
// 跳转APP
printf("turn to APP!\r\n");
APP(APP_ADDR);
printf("turn to APP1!\r\n");
APP(APP_ADDR); //APP_ADDR 0x8049000 APP2_ADDR 0x8049000
}
//wifi 请求失败
@ -1285,12 +1360,12 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
send_length++;
// inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
// send_length++;
// 发送ACK
inf_wifi_buf_length = 0; // ACK
// inf_wifi_buf_length = 0; // ACK
mes_length =0;
ota_lt7689_flag = 0;
send_meg_wifi(inf_wifi_buf,send_length);
@ -1306,19 +1381,34 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
send_length++;
// inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
// send_length++;
// 发送ACK
inf_wifi_buf_length = 0; // ACK
// inf_wifi_buf_length = 0; // ACK
mes_length =0;
ota_lt7689_flag = 0;
send_meg_wifi(inf_wifi_buf,send_length);
}
else
//调试 app区域跳转
#if 0
else if ((wifi_buf[4]==0x11)&&(wifi_buf[6]==0x11)&&(wifi_buf[7]==0x11))
{
APP(APP_ADDR);
}
else if ((wifi_buf[4]==0x22)&&(wifi_buf[6]==0x22)&&(wifi_buf[7]==0x22))
{
APP(APP2_ADDR);
}
#endif
else
{
printf("other new!\r\n");
@ -1328,12 +1418,12 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
unsigned char send_length=inf_wifi_ack(inf_wifi_buf,pkg_seq);
inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
send_length++;
// inf_wifi_buf[send_length] = CalCheckSum( (char *)inf_wifi_buf,send_length);
// send_length++;
// 发送ACK
inf_wifi_buf_length = 0; // ACK
// inf_wifi_buf_length = 0; // ACK
mes_length =0;
ota_lt7689_flag = 0;
send_meg_wifi(inf_wifi_buf,send_length);
@ -1343,8 +1433,31 @@ printf(" date = %s,time = %s \r\n", (char *)__DATE__, (char *)__TIME__);
#endif
}
}
else
{
// APP(APP_ADDR);
APP(APP2_ADDR);
}
#if 0
//程序跳转
if(1)
{
APP();
}
else if()
{
}
#endif
}
}

+ 167
- 74
User/ota.c View File

@ -14,12 +14,12 @@
extern unsigned int number1 ;
unsigned int ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned int flash_addr)
unsigned char ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned int flash_addr)
{
// unsigned char write_eflash = 0;
EFLASH_Init(g_sys_clk/1000);
EFLASH_SetWritePermission();
EFLASH_Write(flash_addr,updata_p,length);
EFLASH_Write(flash_addr,updata_p,length);
EFLASH_ClrWritePermission();
return 0;
}
@ -520,7 +520,7 @@ void SCI3_IRQHandler(void)
/* 3-enhance OTA 接口*/
#if 1
unsigned char inf_wifi_buf[20] = {0};
unsigned char inf_wifi_buf_length = 0;
//unsigned char inf_wifi_buf_length = 0;
unsigned char pkg_seq = 0;
unsigned char wifi_buf[256] = {0};
unsigned char mes_length = 0;
@ -561,7 +561,7 @@ unsigned char ota_analysis(unsigned char * rev_wifi_buf,unsigned short len)
printf(" %x",inf_wifi_buf[i]);
}
printf("\r\n");
inf_wifi_buf_length = 0;
// inf_wifi_buf_length = 0;
// printf("send_wifi!\r\n");
return 0;
@ -570,50 +570,87 @@ unsigned char ota_analysis(unsigned char * rev_wifi_buf,unsigned short len)
// mcu通知WIFI 数据包校验错误
unsigned char inf_wifi_data_check_error(unsigned char * inf_wifi_buf,unsigned char pkg_seq)
{
// //封装协议
// inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//// pkg_seq++;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;//pkg_seq;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//
// inf_wifi_buf[inf_wifi_buf_length++] = 0x26;
//
//
//
//
//
// return inf_wifi_buf_length;
unsigned char len = 0;
//封装协议
inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[len++] = 0xa5;
inf_wifi_buf[len++] = 0x5a;
inf_wifi_buf[len++] = 0x01;
// pkg_seq++;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;//pkg_seq;
inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[len++] = 0x01;//pkg_seq;
inf_wifi_buf[len++] = 0x21;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x26;
inf_wifi_buf[len++] = 0x26;
return inf_wifi_buf_length;
return len;
}
//mcu通知WiFi固件校验错误
unsigned char inf_wifi_bin_check_error(unsigned char * inf_wifi_buf,unsigned char pkg_seq)
{
// //封装协议
// inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//// pkg_seq++;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;// pkg_seq;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
//
// inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
//
//
//
//
//
// return inf_wifi_buf_length;
unsigned char len = 0;
//封装协议
inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[len++] = 0xa5;
inf_wifi_buf[len++] = 0x5a;
inf_wifi_buf[len++] = 0x01;
// pkg_seq++;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;// pkg_seq;
inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[len++] = 0x01;// pkg_seq;
inf_wifi_buf[len++] = 0x21;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
inf_wifi_buf[len++] = 0x27;
return inf_wifi_buf_length;
return len;
}
@ -621,24 +658,43 @@ unsigned char inf_wifi_bin_check_error(unsigned char * inf_wifi_buf,unsigned cha
unsigned char inf_wifi_ota_suc(unsigned char * inf_wifi_buf,unsigned char pkg_seq)
{
//封装协议
inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// //封装协议
// inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//// pkg_seq++;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;//pkg_seq;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//
// inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
//
//
//
//
//
// return inf_wifi_buf_length;
unsigned char len = 0;
//封装协议
inf_wifi_buf[len++] = 0xa5;
inf_wifi_buf[len++] = 0x5a;
inf_wifi_buf[len++] = 0x01;
// pkg_seq++;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;//pkg_seq;
inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[len++] = 0x01;//pkg_seq;
inf_wifi_buf[len++] = 0x21;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
inf_wifi_buf[len++] = 0x27;
return inf_wifi_buf_length;
return len;
}
@ -646,44 +702,69 @@ unsigned char inf_wifi_ota_suc(unsigned char * inf_wifi_buf,unsigned char pkg_se
unsigned char inf_wifi_ota_start(unsigned char * inf_wifi_buf,unsigned char pkg_seq)
{
// //封装协议
// inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//// pkg_seq++;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x03;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//
// inf_wifi_buf[inf_wifi_buf_length++] = 0x28;
//
//
// return inf_wifi_buf_length;
unsigned char len = 0;
//封装协议
inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[len++] = 0xa5;
inf_wifi_buf[len++] = 0x5a;
inf_wifi_buf[len++] = 0x01;
// pkg_seq++;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x03;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[len++] = 0x21;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x03;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x28;
inf_wifi_buf[len++] = 0x28;
return inf_wifi_buf_length;
return len;
}
// 用于确认 收到的消息
unsigned char inf_wifi_ack(unsigned char * inf_wifi_buf,unsigned char pkg_seq)
{
unsigned char len = 0;
//封装协议
inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// pkg_seq++;
inf_wifi_buf[inf_wifi_buf_length++] = pkg_seq;
inf_wifi_buf[inf_wifi_buf_length++] = 0x03;
inf_wifi_buf[inf_wifi_buf_length++] = 0x00;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0xa5;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x5a;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//
// inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
//// pkg_seq++;
// inf_wifi_buf[inf_wifi_buf_length++] = pkg_seq;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x03;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x00;
return inf_wifi_buf_length;
//封装协议
inf_wifi_buf[len++] = 0xa5;
inf_wifi_buf[len++] = 0x5a;
inf_wifi_buf[len++] = 0x01;
// pkg_seq++;
inf_wifi_buf[len++] = pkg_seq;
inf_wifi_buf[len++] = 0x03;
inf_wifi_buf[len++] = 0x00;
inf_wifi_buf[len] = CalCheckSum( (char *)inf_wifi_buf,len);
len++;
// return inf_wifi_buf_length;
return len;
}
@ -728,20 +809,32 @@ unsigned char send_meg_wifi(unsigned char * send_buf,unsigned char length)
unsigned char inf_wifi_finish(unsigned char * inf_wifi_buf ,unsigned char pkg_seq)
{
inf_wifi_buf[inf_wifi_buf_length++] = 0xA5;
inf_wifi_buf[inf_wifi_buf_length++] = 0x5A;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// pkg_seq++;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
// inf_wifi_buf[inf_wifi_buf_length++] = 0xA5;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x5A;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// // pkg_seq++;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x21;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x02;
// inf_wifi_buf[inf_wifi_buf_length++] = 0x01;
//
// inf_wifi_buf[inf_wifi_buf_length++] = 0x27;
unsigned char len = 0;
inf_wifi_buf[len++] = 0xA5;
inf_wifi_buf[len++] = 0x5A;
inf_wifi_buf[len++] = 0x01;
// pkg_seq++;
inf_wifi_buf[len++] = 0x01;
inf_wifi_buf[len++] = 0x21;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x02;
inf_wifi_buf[len++] = 0x01;
return inf_wifi_buf_length;
inf_wifi_buf[len++] = 0x27;
return len;
}

Loading…
Cancel
Save