ew写延时验证成功,ej写流水号验证成功

解决上位机协议crc错误依然执行命令的bug
    注意:小板方案中芯片类型与主板不同时,使用槽任务可能造成各种异常问题(死机,死循环,不返回数据等)
This commit is contained in:
ranchuan
2023-12-26 18:08:59 +08:00
parent a6ba0a1818
commit d22fdc1ccb
9 changed files with 73 additions and 10 deletions

View File

@@ -312,3 +312,7 @@
解决EW写流水号数组越界的bug
解决0x20指令只会解析第一个槽参数的bug
ew写延时添加crc8
2023.12.26
ew写延时验证成功ej写流水号验证成功
解决上位机协议crc错误依然执行命令的bug
注意:小板方案中芯片类型与主板不同时,使用槽任务可能造成各种异常问题(死机,死循环,不返回数据等)

View File

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

View File

@@ -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,
};

View File

@@ -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复位至boot1复位至app
(void*)0 //数组结束
};

View File

@@ -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){

View File

@@ -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,

View File

@@ -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"

View File

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