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);