diff --git a/checher_slave.uvoptx b/checher_slave.uvoptx index c01ce06..358ce1d 100644 --- a/checher_slave.uvoptx +++ b/checher_slave.uvoptx @@ -618,7 +618,24 @@ - + + + 0 + 0 + 108 + 1 +
134339522
+ 0 + 0 + 0 + 0 + 0 + 1 + D:\work\SVN\鍐夊窛\mcu_program\checker_slave\source\rt_thread\board.c + + \\checker_slave_app\source/rt_thread/board.c\108 +
+
0 @@ -635,6 +652,21 @@ 1 state + + 3 + 1 + cmd_buf + + + 4 + 1 + readbuf + + + 5 + 1 + JQ_SendRead + @@ -648,7 +680,7 @@ 2 1 - 0x200079a0 + 0x20003DD0 0 diff --git a/source/ReadMe.txt b/source/ReadMe.txt index da73e89..c6a39ca 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -312,3 +312,7 @@ 解决EW写流水号数组越界的bug 解决0x20指令只会解析第一个槽参数的bug ew写延时添加crc8 +2023.12.26 + ew写延时验证成功,ej写流水号验证成功 + 解决上位机协议crc错误依然执行命令的bug + 注意:小板方案中芯片类型与主板不同时,使用槽任务可能造成各种异常问题(死机,死循环,不返回数据等) diff --git a/source/codec/codec.c b/source/codec/codec.c index c58f740..0cc9900 100644 --- a/source/codec/codec.c +++ b/source/codec/codec.c @@ -66,7 +66,7 @@ array_def *protu_decode(protu_def *p,array_def *data) { // crc校验不对 DBG_WARN("recv data check error.h_crc=%02x %02x,crc=%02x %02x",chk_a,chk_b,arr_get(data,-2),arr_get(data,-1)); - //str_set(p->str_err,"recv data check error."); + str_set(p->str_err,"recv data check error."); } int cmd_no=arr_get(data,5)|(arr_get(data,6)<<8); // if(p->cmd_no==cmd_no) diff --git a/source/elec_det/elec_judge.c b/source/elec_det/elec_judge.c index b4eed89..b7a187e 100644 --- a/source/elec_det/elec_judge.c +++ b/source/elec_det/elec_judge.c @@ -197,6 +197,19 @@ elec_task_judge, //33 写模块版本 elec_task_judge, //34 读取版本号 elec_task_judge, //35 写缓存数据 elec_task_judge, //36 验证缓存数据 +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, //49 0, }; @@ -286,6 +299,17 @@ elec_task_judge, //35 检测过程中注码 elec_task_judge, //36 验证注码 elec_task_judge, //37 模块在线检测 elec_task_judge, //38 升级 +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, +elec_task_judge, //49 0, }; diff --git a/source/elec_det/interface/EWChecker.c b/source/elec_det/interface/EWChecker.c index c160dab..85cd8e3 100644 --- a/source/elec_det/interface/EWChecker.c +++ b/source/elec_det/interface/EWChecker.c @@ -1097,8 +1097,8 @@ void EW_Test_WriteSN(void) void EW_Test_WriteDelay(void) { uint8_t uc_rtv=0; - uint8_t addr[2]={0x18/4,0xa8/4}; - uint8_t len=3; + uint8_t addr[2]={0x48/4,0xa8/4}; + uint8_t len=4; // 缓存开大一点防止数据越界 typedef union{ uint8_t arr[6]; @@ -1117,7 +1117,7 @@ void EW_Test_WriteDelay(void) // } delay_ms(50); temp.data=delay; - temp.arr[2]=CheckCRC_8(temp.arr,2); + temp.arr[len-1]=CheckCRC_8(temp.arr,len-1); uc_rtv |= EW_WriteMTP(checker_runcfg.netid,addr[i],temp.arr,len); if(uc_rtv){ uc_rtv=2+i; @@ -1195,6 +1195,7 @@ CheckerExt_SetCbv, //37 设置电阻校准值 EW_Test_ReadSN, //38 读取流水号 EW_Test_WriteSN, //39 写入流水号 EW_Test_WriteDelay, //40 写固定延时 +EW_Test_RunBoot, //41 复位,0复位至boot;1复位至app (void*)0 //数组结束 }; diff --git a/source/elec_det/interface/EWUpdata.c b/source/elec_det/interface/EWUpdata.c index cc88f48..c8c9bc3 100644 --- a/source/elec_det/interface/EWUpdata.c +++ b/source/elec_det/interface/EWUpdata.c @@ -318,7 +318,7 @@ static int EW_TurnToBoot1(ew_updata_def *e) delay_ms(5); EW_EnWriteMTP(0,1); delay_ms(5); - EW_RunBootLoader(0,1); + EW_RunBootLoader(0,0); delay_ms(500); if(EW_bootCharg()==0) return 0; @@ -340,7 +340,7 @@ static int EW_TurnToBoot2(ew_updata_def *e) int EW_TurnToBoot(ew_updata_def *e) { typedef int (*turnfun)(ew_updata_def *e); - turnfun func_table[]={EW_TurnToBoot2,EW_TurnToBoot2}; + turnfun func_table[]={EW_TurnToBoot1,EW_TurnToBoot2}; int ret=0; for(int i=0;i<2;i++){ if(e->state!=1){ diff --git a/source/interface/if_uart.c b/source/interface/if_uart.c index 2591841..da616b1 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=57600, + .baudrate=38400, .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 1d8c336..a590769 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-12-25 17:21:14" +#define BUILD_DATE "2023-12-26 17:20:22" #define SOFT_VERSION "2.10" diff --git a/source/task/tran_for_broadcast.c b/source/task/tran_for_broadcast.c index ecda370..7f66de4 100644 --- a/source/task/tran_for_broadcast.c +++ b/source/task/tran_for_broadcast.c @@ -122,6 +122,8 @@ static void slave_adds(self_def *s) t->task_index=arr_get(s->data,off+5); memcpy(t->params,arr_data(s->data)+off+6,t->par_count*2); task_slot_add_item(slot,t); + DBG_LOG("slot_index=%d,task_id=%d,par_count=%d,ret_count=%d", + t->slot_index,t->task_id,t->par_count,t->ret_count); off+=6+t->par_count*2; } free(t);