From aa8d49358128810438822d3d04fab118ee618ecd Mon Sep 17 00:00:00 2001 From: ranchuan Date: Mon, 9 Oct 2023 18:12:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=80=BB=E7=BA=BF=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=A8=A1=E5=9D=97=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/JW3425_boot_v6.bin | Bin 3992 -> 0 bytes doc/JW3425_boot_v8.bin | Bin 0 -> 3992 bytes doc/creat_jwt_boot.py | 27 ++++++- doc/jwt_program.jwt | Bin 16384 -> 16384 bytes source/ReadMe.txt | 3 + source/dev/dev_flash.c | 6 +- source/elec_det/base/define.h | 4 +- source/elec_det/driver/EWDriver.c | 5 +- source/elec_det/elec_cmd.c | 31 +++++--- source/elec_det/interface/EWChecker.c | 108 +++++++++++++++++++++----- source/main/compiler_info.h | 2 +- 11 files changed, 150 insertions(+), 36 deletions(-) delete mode 100644 doc/JW3425_boot_v6.bin create mode 100644 doc/JW3425_boot_v8.bin diff --git a/doc/JW3425_boot_v6.bin b/doc/JW3425_boot_v6.bin deleted file mode 100644 index e861c309cfc71da85ab50c4bf3be23058607e12b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3992 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 U4!*ejKi%Q~=iWM?l*HlnpZ7of`Tzg` diff --git a/doc/JW3425_boot_v8.bin b/doc/JW3425_boot_v8.bin new file mode 100644 index 0000000000000000000000000000000000000000..8a8c8c1ec2f0982c91ffc6ff69766c820da5e3d0 GIT binary patch literal 3992 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,(num>>16)&0xff,(num>>24)&0xff]) + +def crc32(data:bytearray): + temp=0 + crc=0xffffffff + i=0 + if(len(data)%4!=0): + return 0 + while(iyX|NqXTBg7IQK(Tug897wlkl z^?V`B&QO2j^hNi@oF5r3rUIaqgy#f+WanI9b@kP#{aP!M`eQp#&x~N+*)uNB2o_F1&M@P$sP=Yo7KX{~>;g^G z7dZ&IG`ScuHZ@ERV4TGGVe@0g>+JP{f^27$PN|*HI;3~R=z!U=i|Gyif*n9J9|*HE z)ZaLL(M6cmf$jYV{_hvl=lHjF&piBBd2?`@Yt|w8?GX|0i>7VT$ou*!}eX=E=HT)*O!k;_?RBC6 diff --git a/source/ReadMe.txt b/source/ReadMe.txt index e9462d0..28bbcfc 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -188,4 +188,7 @@ 发现gd32不能以地址0x00000000来擦除flash 修改擦除地址为0x08000000来解决无法写入的问题 添加设置总线电压cmd命令 +2023.10.9 + 实现通过iic下载模块程序,期间自动开启和关闭总线 + 实现通过总线下载模块程序,crc32校验失败 diff --git a/source/dev/dev_flash.c b/source/dev/dev_flash.c index b8e8eaa..bd81ff3 100644 --- a/source/dev/dev_flash.c +++ b/source/dev/dev_flash.c @@ -39,10 +39,10 @@ scheme 109~110 #define FLASH_BUFF_SECTOR_NUM (50) #define FLASH_PARAM_SECTOR (108) #define FLASH_PARAM_SECTOR_NUM (1) -#define FLASH_SCHEME_SECTOR (109) -#define FLASH_SCHEME_SECTOR_NUM (3) -#define FLASH_JWTCODE_SECTOR (112) +#define FLASH_JWTCODE_SECTOR (109) #define FLASH_JWTCODE_SECTOR_NUM (9) +#define FLASH_SCHEME_SECTOR (118) +#define FLASH_SCHEME_SECTOR_NUM (6) diff --git a/source/elec_det/base/define.h b/source/elec_det/base/define.h index 81c2954..0204db9 100644 --- a/source/elec_det/base/define.h +++ b/source/elec_det/base/define.h @@ -58,12 +58,12 @@ uint8_t uc_buf[4]; // 模块程序地址 // 这个地址要和 dev_flash.c 中定义的地址相对应 #define MC_CODE_ADDR \ - (FLASH_BASE+2048*112+128) + (FLASH_BASE+2048*109+128) // 方案地址 // 这个地址要和 dev_flash.c 中定义的地址相对应 #define APP_TEST_PLAN_ADDR \ - (FLASH_BASE+2048*109+128) + (FLASH_BASE+2048*118+128) // 方案大小 #define APP_TEST_PLANINFO_SIZE 2048 diff --git a/source/elec_det/driver/EWDriver.c b/source/elec_det/driver/EWDriver.c index 55f033f..6bf89bc 100644 --- a/source/elec_det/driver/EWDriver.c +++ b/source/elec_det/driver/EWDriver.c @@ -16,7 +16,8 @@ static volatile CurrentSample_Range_eu buscurrent_range = Current_Max; #endif #define SMod_Read_Idle_Filter 90 -#define DMod_Read_Idle_Filter 50 +// 根据反码电流改变 +#define DMod_Read_Idle_Filter 300 volatile uint16_t* EW_Read_AD_V = FireBus_ADC_Buf; static volatile uint16_t SMod_Read_Idle_C; @@ -757,7 +758,7 @@ uint8_t DMod_ReadBytesXor(uint8_t* buf, uint8_t len,uint16_t retry_times) else return 2; } - return 1; + return ret; } diff --git a/source/elec_det/elec_cmd.c b/source/elec_det/elec_cmd.c index 77aa022..5f2cae4 100644 --- a/source/elec_det/elec_cmd.c +++ b/source/elec_det/elec_cmd.c @@ -3,6 +3,7 @@ #include "mystring.h" #include "mystdlib.h" #include "hardware/jw3425iic.h" +#include "hardware/power.h" #include "interface/BaseChecker.h" #include "base/define.h" #include "base/utility.h" @@ -65,8 +66,15 @@ static int cmd_iic_updata(list_def *argv) crc32=Crc32Calu((uint32_t*)MC_CODE_ADDR,16*1024); boardinfo_un.boardinfo.mc_ICodeCrc32=crc32; cmd_print("crc32=0x%04x.",crc32); - MC_IICUpdateMTP(); - ret=checker_runcfg.excue_rtv; + + ret=PowerCalibration_set(85,55); + if(ret==0){ + MC_IICUpdateMTP(); + ret=checker_runcfg.excue_rtv; + } + PowerCalibration_set(POWER_DEF_V,45); + POWER_OFF; + cmd_print("cmd end,ret=%d.",ret); return 0; } @@ -100,18 +108,23 @@ commend_export(iic_read,cmd_iic_read,"read mtp via iic,param:mtp_addr,data_lengt // 设置总线电压 static int cmd_set_bus_power(list_def *argv) { - if(list_length(argv)<2){ + if(list_length(argv)<3){ cmd_print("param num too less."); return -1; } - int bus_v=str_atoi(list_get_str(argv,1)); + int bus_hv=str_atoi(list_get_str(argv,1)); + int bus_mv=str_atoi(list_get_str(argv,2)); int ret=0; - checker_runcfg.params[0]=(uint16_t)bus_v; - checker_runcfg.param_count=1; - EW_Test_SetBusV(); - ret=checker_runcfg.excue_rtv; + if(bus_hv>0){ + ret=PowerCalibration_set(bus_hv,bus_mv); + } + else{ + ret=PowerCalibration_set(POWER_DEF_V,45); + POWER_OFF; + } cmd_print("cmd end,ret=%d.",ret); + return 0; } -commend_export(bus_power,cmd_set_bus_power,"set bus power,param:bus_power") +commend_export(bus_power,cmd_set_bus_power,"set bus power,param:bus_high_v,bus_mid_v") diff --git a/source/elec_det/interface/EWChecker.c b/source/elec_det/interface/EWChecker.c index 6061e44..b5ed6b5 100644 --- a/source/elec_det/interface/EWChecker.c +++ b/source/elec_det/interface/EWChecker.c @@ -7,8 +7,12 @@ #include "hardware/power.h" #include "hardware/timer_cfg.h" #include "debug.h" +#include "commend.h" +#include "mystring.h" +#include "mystdlib.h" -#define UPDATA_PACK_LEN 58 + +#define UPDATA_PACK_LEN 128 #define UPDATA_BASE_ADDR 0x1000 #define UPDATA_DATA_LEN (12*1024) #define UPDATA_FLAG_ADDR (0x3c7c) @@ -24,9 +28,15 @@ static uint8_t EW_Erease(void) DMod_SendBytesXor(data,2,1); ret=DMod_ReadBytesXor(read,4,100); DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); - delay_ms(50); return ret; } +static int cmd_jwt_boot_erase(list_def *argv) +{ + int ret=0; + ret=EW_Erease(); + return ret; +} +commend_export(jwt_boot_erase,cmd_jwt_boot_erase,"jwt srase in boot") // 跳转 @@ -38,27 +48,61 @@ static uint8_t EW_Jump(void) DMod_SendBytesXor(data,2,1); ret=DMod_ReadBytesXor(read,4,100); DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); - delay_ms(50); return ret; } +static int cmd_jwt_boot_jump(list_def *argv) +{ + int ret=0; + ret=EW_Jump(); + return ret; +} +commend_export(jwt_boot_jump,cmd_jwt_boot_jump,"jwt jump in boot") // 充电 static uint8_t EW_Charg(void) { - uint8_t data[4]={0xf8,0x01,0x04,0x00}; + uint8_t data[4]={0xf8,0x01,0x01,0x00}; uint8_t read[4]={0}; uint8_t ret=0; - delay_ms(2000); DMod_SendBytesXor(data,3,1); ret=DMod_ReadBytesXor(read,4,100); DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); - delay_ms(5000); return ret; } +static int cmd_jwt_boot_charg(list_def *argv) +{ + int ret=0; + ret=EW_Charg(); + return ret; +} +commend_export(jwt_boot_charg,cmd_jwt_boot_charg,"jwt charg in boot") + + + +// 放电 +static uint8_t EW_DisCharg(void) +{ + uint8_t data[4]={0xf8,0x01,0x00,0x00}; + uint8_t read[4]={0}; + uint8_t ret=0; + DMod_SendBytesXor(data,3,1); + ret=DMod_ReadBytesXor(read,4,100); + DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); + return ret; +} +static int cmd_jwt_boot_discharg(list_def *argv) +{ + int ret=0; + ret=EW_Charg(); + return ret; +} +commend_export(jwt_boot_discharg,cmd_jwt_boot_discharg,"jwt discharg in boot") + + // 发送数据 -// len 最长为58字节 +// len 最长为128字节 static uint8_t EW_Write(uint16_t addr,uint8_t *d,uint16_t len) { uint8_t ret=0; @@ -74,7 +118,6 @@ static uint8_t EW_Write(uint16_t addr,uint8_t *d,uint16_t len) ret=DMod_ReadBytesXor(read,4,100); rt_free(buf); DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); - delay_ms(50); return ret; } @@ -93,10 +136,22 @@ static uint8_t EW_CheckCrc(uint16_t adr_start,uint16_t adr_end,uint32_t *crc) *crc=(read[3])|(read[4]<<8)|(read[5]<<16)|(read[6]<<24); } } - DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); - delay_ms(50); + DBG_LOG("addr_start=0x%04x,addr_end=0x%04x.",adr_start,adr_end); + DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,", + ret,read[0],read[1],read[2],read[3],read[4],read[5],read[6],read[7]); return ret; } +static int cmd_jwt_boot_checkcrc(list_def *argv) +{ + int ret=0; + uint32_t crc=0; + ret=EW_CheckCrc(UPDATA_BASE_ADDR,UPDATA_BASE_ADDR+UPDATA_DATA_LEN,&crc); + cmd_print("jwt crc32=0x%04x.",crc); + crc=Crc32Calu((uint32_t *)(MC_CODE_ADDR+UPDATA_BASE_ADDR),UPDATA_DATA_LEN); + cmd_print("local crc32=0x%04x.",crc); + return ret; +} +commend_export(jwt_boot_checkcrc,cmd_jwt_boot_checkcrc,"jwt checkcrc in boot") @@ -116,20 +171,31 @@ static uint8_t EW_Read(uint16_t adr,uint8_t *buf,uint16_t len) rt_memcpy(buf,&read[3],len); } DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]); - delay_ms(50); rt_free(read); return ret; } + + + // app:通信测试 -static void EW_appCommTest(void) +static int EW_appCommTest(void) { uint8_t data[4]={0x11,0x22}; uint8_t ret; + DBG_LOG("send:%02x,%02x.",data[0],data[1]); ret=EW_CommTest(data,2,300); DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,data[0],data[1],data[2],data[3]); + return ret; } +static int cmd_jwt_app_commtest(list_def *argv) +{ + int ret=0; + ret=EW_appCommTest(); + return ret; +} +commend_export(jwt_app_commtest,cmd_jwt_app_commtest,"jwt commtest in app") // 升级 @@ -143,12 +209,13 @@ void EW_Updata(void) uint8_t pack_len=UPDATA_PACK_LEN; uint32_t crc=0; uint32_t crc_module=0; - EW_appCommTest(); + delay_ms(100); ret=EW_Charg(); if(ret) {ret=1;goto err;} + delay_ms(6000); ret=EW_Erease(); - //ret=EW_Jump(); if(ret) {ret=2;goto err;} + delay_ms(600); while(len>0){ pack_len=len>UPDATA_PACK_LEN?UPDATA_PACK_LEN:len; ret=EW_Write(addr,data,pack_len); @@ -156,12 +223,15 @@ void EW_Updata(void) data+=pack_len; len-=pack_len; if(ret) {ret=3;goto err;} + delay_ms(50); } - crc=Crc32Calu((uint32_t *)MC_CODE_ADDR,UPDATA_DATA_LEN/4); + crc=Crc32Calu((uint32_t *)(MC_CODE_ADDR+UPDATA_BASE_ADDR),UPDATA_DATA_LEN); + DBG_LOG("local crc:0x%04x.",crc); ret=EW_CheckCrc(UPDATA_BASE_ADDR,UPDATA_BASE_ADDR+UPDATA_DATA_LEN,&crc_module); + DBG_LOG("module crc:0x%04x.",crc_module); if(ret) {ret=4;goto err;} - if(crc!=crc_module) - {ret=5;goto err;} + if(crc!=crc_module){ret=5;goto err;} + delay_ms(50); ret=EW_Jump(); if(ret) {ret=6;goto err;} delay_ms(100); @@ -185,6 +255,8 @@ void EW_Test_PowerOFF(void) uint8_t uc_rtv = 0; delay_os_ms(100); XTBUS_OFF; + PowerCalibration_set(POWER_DEF_V,45); + POWER_OFF; Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); } @@ -218,7 +290,7 @@ void EW_Test_SetBusV(void) uc_rtv = 1; }else{ - us_m_v = 50; + us_m_v = 55; uc_rtv |= PowerCalibration_set(us_h_v,us_m_v); XTBUS_ON diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index 985105b..7fe0422 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-10-08 17:53:21" +#define BUILD_DATE "2023-10-09 17:54:49" #define SOFT_VERSION "0.03"