From 7f6efb9f5ae6079846dbec8e15b5c80e5d363d40 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Sun, 8 Oct 2023 18:27:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=B8=8D=E8=83=BD=E6=93=A6?= =?UTF-8?q?=E9=99=A4flash=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- checher_slave.uvoptx | 50 +++++++++++++------------- checher_slave.uvprojx | 20 +++++------ doc/JW3425_boot_v6.bin | Bin 0 -> 3992 bytes doc/MS-IEpro20231007.bin | Bin 0 -> 10540 bytes doc/creat_jwt_boot.py | 47 ++++++++++++++++++++++++ doc/jwt_program.jwt | Bin 0 -> 16384 bytes source/ReadMe.txt | 4 +++ source/dev/dev_flash.c | 15 +++++--- source/elec_det/elec_cmd.c | 23 +++++++++++- source/elec_det/elec_det.c | 8 ++++- source/elec_det/interface/EWChecker.c | 32 +++++++++++++++-- source/elec_det/interface/EWChecker.h | 1 + source/interface/if_uart.c | 2 +- source/main/compiler_info.h | 2 +- 14 files changed, 156 insertions(+), 48 deletions(-) create mode 100644 doc/JW3425_boot_v6.bin create mode 100644 doc/MS-IEpro20231007.bin create mode 100644 doc/creat_jwt_boot.py create mode 100644 doc/jwt_program.jwt diff --git a/checher_slave.uvoptx b/checher_slave.uvoptx index d1f11e4..4bc4463 100644 --- a/checher_slave.uvoptx +++ b/checher_slave.uvoptx @@ -103,7 +103,7 @@ 1 0 0 - 4 + 6 @@ -114,9 +114,14 @@ - Segger\JL2CM3.dll + STLink\ST-LINKIII-KEIL_SWO.dll + + 0 + ST-LINKIII-KEIL_SWO + -U52FF6E065266545441081687 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM) + 0 UL2CM3 @@ -130,7 +135,7 @@ 0 DLGUARM - ? + (105=-1,-1,-1,-1,0) 0 @@ -159,8 +164,8 @@ 1 - 1 - 0x200018F0 + 0 + 0x0801d000 0 @@ -168,7 +173,7 @@ 2 0 - src_data + 0x0803B000 0 @@ -322,7 +327,7 @@ 1 0 0 - 4 + 6 @@ -333,9 +338,19 @@ - Segger\JL2CM3.dll + STLink\ST-LINKIII-KEIL_SWO.dll + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + ST-LINKIII-KEIL_SWO + -U52FF6E065266545441081687 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM) + 0 UL2CM3 @@ -362,24 +377,7 @@ - - - 0 - 0 - 93 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - .\source\rt_thread\board.c - - -
-
+ 0 diff --git a/checher_slave.uvprojx b/checher_slave.uvprojx index 991cf16..6be32e7 100644 --- a/checher_slave.uvprojx +++ b/checher_slave.uvprojx @@ -10,7 +10,7 @@ app 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC 0 @@ -185,7 +185,6 @@ 0 0 0 - 0 0 0 8 @@ -352,7 +351,7 @@ 0 0 0 - 4 + 0 @@ -1073,7 +1072,7 @@ boot 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC 0 @@ -1248,7 +1247,6 @@ 0 0 0 - 0 0 0 8 @@ -1415,7 +1413,7 @@ 0 0 0 - 4 + 0 @@ -1862,7 +1860,7 @@ 2 2 2 - 0 + 2 @@ -2926,7 +2924,7 @@ 2 2 2 - 0 + 2 @@ -3468,7 +3466,7 @@ 2 2 2 - 0 + 2 @@ -3572,7 +3570,7 @@ 2 2 2 - 0 + 2 @@ -3651,7 +3649,7 @@ 2 2 2 - 0 + 2 diff --git a/doc/JW3425_boot_v6.bin b/doc/JW3425_boot_v6.bin new file mode 100644 index 0000000000000000000000000000000000000000..e861c309cfc71da85ab50c4bf3be23058607e12b GIT binary patch literal 3992 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 U4!*ejKi%Q~=iWM?l*HlnpZ7of`Tzg` literal 0 HcmV?d00001 diff --git a/doc/MS-IEpro20231007.bin b/doc/MS-IEpro20231007.bin new file mode 100644 index 0000000000000000000000000000000000000000..d29b306386825de75da8faee355e405da292c20c GIT binary patch literal 10540 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

6q7+>Fu`d%B`%36|AoX zNw*Cnf|>aZ`SF57$X0D2=Cp3xIicK%Sq=2u;JZN66c5B|0UIHLxg5$@(m5dnu0e7&1`GQVN|Ne1q2geeA^LBGeTF5QI#@S3hUG6yLwEYmeH@IvG(dG7K$2I7^kNwS|%WT|Rd zZ9*9o*hJfn#Fd>m>tuP>A!^kcTsJr^fqc3h{7g7`Wc{$_Y-;p-tR78zYrTmx!5(%+ zvb<9$KZS2f9*i^L&RZ$(iYAVRhuSlIO}5`^6L3T8Jt^VmUB7hhrE~#a*-i#t1Vghti7)NG@KODcoKhn zuG=9fTxEJ|I^pa{d?QXbs1(2}nQwUN zGY(@e>bEri&Sca{Rs&fBvxeNtj`aTca8g!1=;DPxL)_epE5X?rSzFcn1;cd6k>I%u zeSDG@&t+&Y>>l4l?dP^P%BY6BFYNy(*g1d(K%cpeSf$SilhUU()cfOIavy1IpVkoe zQS4K$-wBq391z9;=m5LN6ajabTnRIbpn?ITFF!gm=?g19gM3q6`y3G^ z4X7yZMNdM$Ow8x@K@PqVPnscnEYlhJchg^gduF}X8{ameBv+b(IJbP!yh7|Mct>T^s%W^hsi=Vv{?o`@-xLamBvf^_Za%SeX zfz&_epU-zZ9lxSs#p=~4^S{JFQP%_eLzJ7)JpW*^xxh5VYiZMVI2?|=_`HTJ{3iz? z)5=u5G?+lD+h*2?cC9viUHK=MbqP&b+i6W|*+H>*c|x0*Z~fQzi1leN(Q3=IfuFwz z7GwRwN2)8ASBehW5&qgyQsy|ZAXRiYX3_2}t8j=Mp$}!XdhlN6ShE029gZ@G)lU=a zBAPstfo-ui@Xz$OSX%&X4nZ42RBq$&#MCc7NmMVS;yKF2UF zr(B)$DwSi$&+&MJpVCK#eGCTp#y;3rcdOrtoZ~sIIaoIcUgQ2`4cQFWOpAuR2G^%> zeFfJNPD5UVYa3iU;Q9qz18}8H){q~-wHB_I;PS%td$KlXv5$B;17K&g8x&Lf755ERBA$gbg=V}{|&oW1yuk5 literal 0 HcmV?d00001 diff --git a/doc/creat_jwt_boot.py b/doc/creat_jwt_boot.py new file mode 100644 index 0000000..0d13a99 --- /dev/null +++ b/doc/creat_jwt_boot.py @@ -0,0 +1,47 @@ +import shutil +import sys +import os +import json + + + +BOOT_PATH ="JW3425_boot_v6.bin" +APP_PATH ="MS-IEpro20231007.bin" +OUT_PATH = "jwt_program.jwt" + +# 创建离线下载器的镜像 + + +# 填充指定个数的byte +def arr_byte_copy(byte:int,num:int): + t=bytearray() + for i in range(num): + t.append(byte) + return t +# int转数组 +def arr_from_int(num:int): + return bytearray([num&0xff,(num>>8)&0xff,(num>>16)&0xff,(num>>24)&0xff]) + + +def creat(): + boot=BOOT_PATH + app=APP_PATH + d=bytearray() + with open(boot,"rb") as f: + d+=f.read() + d+=arr_byte_copy(0x00,4096-len(d)) + with open(app,"rb") as f: + d+=f.read() + d+=arr_byte_copy(0x00,0x3c7c-len(d)) + d+=arr_from_int(0x55aa6699) + d+=arr_byte_copy(0x00,1024*16-len(d)) + with open(OUT_PATH,"wb+") as f: + f.write(d) + print(OUT_PATH+" create boot file success.") + + + +if __name__ == "__main__": + creat() + + diff --git a/doc/jwt_program.jwt b/doc/jwt_program.jwt new file mode 100644 index 0000000000000000000000000000000000000000..442ebbec62bf33e21aa393d97cb83517d2202839 GIT binary patch literal 16384 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"flash_mutex",RT_IPC_FLAG_FIFO); } rt_mutex_take(s->mutex,RT_WAITING_FOREVER); + //irq_disable(); FLASH_Unlock(); FLASH_CLEAR_FLAG(); // 对于f103 2048byte为一个扇区,这里把扇区地址转化为flash地址 - ret=FLASH_ErasePage(sector*2048); + ret=FLASH_ErasePage(FLASH_BASE+ sector*2048); + //FLASH_Lock(); + //irq_enable(); rt_mutex_release(s->mutex); if(ret!=FLASH_COMPLETE) { @@ -263,20 +266,24 @@ int flash_write(uint8_t *addr,const uint8_t *data,int len) //DBG_LOG("write flash addr=%08x",flash_addr); len+=3;// len不是4字节对齐时强行增加到4字节 + //FLASH_Unlock(); for(int i=0;iSR=%08X",FLASH->SR); + DBG_WARN("addr=%08X",flash_addr); ret=-1; break; } + flash_addr+=4; } + //FLASH_Lock(); if(memcmp(addr,data,(len/4)*4)!=0) { DBG_WARN("addr=%08x write/read data not equate.",addr); diff --git a/source/elec_det/elec_cmd.c b/source/elec_det/elec_cmd.c index 2b93992..77aa022 100644 --- a/source/elec_det/elec_cmd.c +++ b/source/elec_det/elec_cmd.c @@ -1,10 +1,12 @@ #include "elec_det.h" #include "commend.h" #include "mystring.h" +#include "mystdlib.h" #include "hardware/jw3425iic.h" #include "interface/BaseChecker.h" #include "base/define.h" #include "base/utility.h" +#include "interface/EWChecker.h" // 电子模块相关调试命令 @@ -15,8 +17,9 @@ static int cmd_check(list_def *argv) { array_def *data=arr_creat(); cmd_print("start check."); - elec_check_with_scheme(data); + array_def *r=elec_check_with_scheme(data); arr_delete(data); + cmd_print("check end,ret=%s.",str_temp(arr_string(r))); return 0; } commend_export(check,cmd_check,"start check") @@ -94,3 +97,21 @@ 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){ + cmd_print("param num too less."); + return -1; + } + int bus_v=str_atoi(list_get_str(argv,1)); + int ret=0; + checker_runcfg.params[0]=(uint16_t)bus_v; + checker_runcfg.param_count=1; + EW_Test_SetBusV(); + ret=checker_runcfg.excue_rtv; + cmd_print("cmd end,ret=%d.",ret); +} +commend_export(bus_power,cmd_set_bus_power,"set bus power,param:bus_power") + + diff --git a/source/elec_det/elec_det.c b/source/elec_det/elec_det.c index ce08c16..1c2e62e 100644 --- a/source/elec_det/elec_det.c +++ b/source/elec_det/elec_det.c @@ -18,6 +18,7 @@ #include "interface/BaseChecker.h" #include "interface/JQChecker.h" #include "interface/XTChecker.h" +#include "interface/EWChecker.h" #define PLAN_MAX_TASK 64 @@ -196,7 +197,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw) { self_def *s=&g_self; const uint8_t* ptaskindex = (uint8_t*)(APP_TEST_PLAN_ADDR+4); - CheckerTask *tasks_fun_table[]={jqtaskArray,xttaskArray}; + CheckerTask *tasks_fun_table[]={jqtaskArray,xttaskArray,ewtaskArray}; CheckerTask_Info_st *task_par=0; uint8_t chip_type=0; uint8_t taskid=0; @@ -205,10 +206,12 @@ array_def *elec_check_with_scheme(array_def *uid_psw) array_def *r=arr_creat(); chip_type=(board_st.plan_id >> 12 ) & 0x0F; if(s->scheme_inited==0){ + DBG_WARN("scheme not init."); arr_append(r,1); return arr_temp(r); } if(chip_type>=LENGTH(tasks_fun_table)){ + DBG_WARN("unknown chip type."); arr_append(r,2); return arr_temp(r); } @@ -225,14 +228,17 @@ array_def *elec_check_with_scheme(array_def *uid_psw) checker_runcfg.excue_rtv = 0; checker_runcfg.task_info.retry_time = 0; if(taskid>=CHECKER_MAXID_COUNT){ + DBG_WARN("tiskid out of bound."); break; } task_par= s->task_info_array[task_index]; if(task_par==0){ + DBG_WARN("can not find task params."); break; } task_fun=tasks_fun_table[chip_type][taskid]; if(task_fun==0){ + DBG_WARN("can not find task fun."); break; } diff --git a/source/elec_det/interface/EWChecker.c b/source/elec_det/interface/EWChecker.c index 729ba90..6061e44 100644 --- a/source/elec_det/interface/EWChecker.c +++ b/source/elec_det/interface/EWChecker.c @@ -6,7 +6,7 @@ #include "base/utility.h" #include "hardware/power.h" #include "hardware/timer_cfg.h" - +#include "debug.h" #define UPDATA_PACK_LEN 58 #define UPDATA_BASE_ADDR 0x1000 @@ -23,6 +23,7 @@ static uint8_t EW_Erease(void) uint8_t ret=0; 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; } @@ -36,6 +37,7 @@ static uint8_t EW_Jump(void) uint8_t ret=0; 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; } @@ -50,6 +52,7 @@ static uint8_t EW_Charg(void) 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; } @@ -70,6 +73,7 @@ static uint8_t EW_Write(uint16_t addr,uint8_t *d,uint16_t len) DMod_SendBytesXor(buf,len+2+2,1); 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; } @@ -89,6 +93,7 @@ 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); return ret; } @@ -110,12 +115,23 @@ 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) +{ + uint8_t data[4]={0x11,0x22}; + uint8_t ret; + ret=EW_CommTest(data,2,300); + DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,data[0],data[1],data[2],data[3]); +} + + // 升级 void EW_Updata(void) { @@ -127,9 +143,11 @@ void EW_Updata(void) uint8_t pack_len=UPDATA_PACK_LEN; uint32_t crc=0; uint32_t crc_module=0; + EW_appCommTest(); ret=EW_Charg(); if(ret) {ret=1;goto err;} ret=EW_Erease(); + //ret=EW_Jump(); if(ret) {ret=2;goto err;} while(len>0){ pack_len=len>UPDATA_PACK_LEN?UPDATA_PACK_LEN:len; @@ -156,6 +174,7 @@ void EW_Updata(void) delay_ms(100); err: + DBG_LOG("ret=%d",ret); Checker_MaskResult(ret,checker_runcfg.task_info.runindex); } @@ -191,8 +210,9 @@ void EW_Test_SetBusV(void) Checker_RunCfg_st *cfg=&checker_runcfg; uint8_t uc_rtv = 0; uint16_t us_h_v,us_m_v; - //us_h_v = cfg->params[0]; - us_h_v = 240; + uint16_t power_old; + us_h_v = cfg->params[0]; + power_old=us_h_v; if(us_h_v < 55) { uc_rtv = 1; @@ -207,6 +227,12 @@ void EW_Test_SetBusV(void) us_h_v = Power_GetBousV(); Checker_SetRtv(&us_h_v,cfg->rtv_count); } + if(uc_rtv){ + DBG_WARN("bus power init failed.h"); + } + if((us_h_vpower_old+10)){ + DBG_WARN("power set fialed,want=%d,reality=%d.",power_old,us_h_v); + } Checker_MaskResult(uc_rtv,cfg->task_info.runindex); } diff --git a/source/elec_det/interface/EWChecker.h b/source/elec_det/interface/EWChecker.h index 47b80c3..9a298cf 100644 --- a/source/elec_det/interface/EWChecker.h +++ b/source/elec_det/interface/EWChecker.h @@ -10,6 +10,7 @@ extern CheckerTask ewtaskArray[CHECKER_MAXID_COUNT] ; +void EW_Test_SetBusV(void); diff --git a/source/interface/if_uart.c b/source/interface/if_uart.c index a47f83f..bd891cc 100644 --- a/source/interface/if_uart.c +++ b/source/interface/if_uart.c @@ -87,7 +87,7 @@ static const uart_dtb g_uartdtb[]={ .uart=USART1, .uart_clock_fun=RCC_APB2PeriphClockCmd, .uart_rcc=RCC_APB2Periph_USART1, - .baudrate=115200, + .baudrate=57600, .irq_channel=USART1_IRQn, .gpio_tx_clock_fun=RCC_APB2PeriphClockCmd, diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index 184cfa4..985105b 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-10-07 22:39:04" +#define BUILD_DATE "2023-10-08 17:53:21" #define SOFT_VERSION "0.03"