移植Test命令,验证成功

EJ EX 写工厂信息验证成功
This commit is contained in:
ranchuan
2023-10-12 18:43:17 +08:00
parent f0f36cf79a
commit 17b4ebf188
25 changed files with 2363 additions and 87 deletions

View File

@@ -1058,6 +1058,107 @@ void JQ_Test_ReadVersion(void)
Checker_SetRtv(&us_temp,checker_runcfg.rtv_count);
}
/*
@brief 写入OTP数据
@param0 OTP起始地址
@param1 缓存首地址
@param2 写入长度
*/
void JQ_Test_WriteFacBuff(void)
{
uint8_t uc_rtv = 0;
uint8_t uc_ack;
uint8_t uc_otpAddr = checker_runcfg.params[0];
uint8_t uc_bufIndex = checker_runcfg.params[1];
uint8_t uc_writeCount = checker_runcfg.params[2];
uint8_t uc_count = 0;
uint8_t uc_wcount ;
uint8_t ul_temp[4];
//Checker_FacBuf 验证合法性
if(0 != Checker_FacBufCheck())
{
uc_rtv = 1;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
JQ_EnWOTP();
JQ_EnWOTP();
for(uc_count = 0; uc_count < uc_writeCount;uc_count++,uc_otpAddr++,uc_bufIndex++)
{
uc_ack = JQ_ReadOTP(CHECKER_NET_ID,uc_otpAddr,1,ul_temp);
if(uc_ack < 1)
{
uc_rtv = 2;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
if(Checker_FacBuf[uc_bufIndex+2] == ul_temp[0])
{
continue;
}
if(ul_temp[0] != 0)
{
if((ul_temp[0] & Checker_FacBuf[uc_bufIndex+2]) != ul_temp[0])//OTP不能由1变成0
{
uc_rtv = 3;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
}
uc_wcount = JQ_WriteOTP(uc_otpAddr,1,&Checker_FacBuf[uc_bufIndex+2]);
if(uc_wcount != 1)
{
uc_rtv = 4;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
}
uc_rtv = 0;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
/*
@brief 验证OTP内部与缓存比较
@param0 OTP起始地址
@param1 缓存首地址
@param2 验证长度
*/
void JQ_Test_VerifyFacBuff(void)
{
uint8_t uc_rtv = 0;
uint8_t uc_ack;
uint8_t uc_otpAddr = checker_runcfg.params[0];
uint8_t uc_bufIndex = checker_runcfg.params[1];
uint8_t uc_verifyCount = checker_runcfg.params[2];
uint8_t uc_count = 0;
uint8_t ul_temp[4];
if(0 != Checker_FacBufCheck())
{
uc_rtv = 1;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
for(uc_count = 0; uc_count < uc_verifyCount;uc_count++)
{
uc_ack = JQ_ReadOTP(CHECKER_NET_ID,uc_otpAddr,1,ul_temp);
if((uc_ack < 1) || (Checker_FacBuf[uc_bufIndex+2] != ul_temp[0]))
{
uc_rtv = 2;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
uc_bufIndex++;
uc_otpAddr++;
}
uc_rtv = 0;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
return;
}
CheckerTask jqtaskArray[CHECKER_MAXID_COUNT] ={
Checker_PowerPrapare, //0 电源准备
JQ_Test_PowerOn, //1 上电充能
@@ -1094,6 +1195,8 @@ Checker_ResistorSample,//31 测量桥丝阻值
JQ_Test_EnOTPW ,//32 使能OTP写
JQ_Test_WriteVersion ,//33 写模块版本
JQ_Test_ReadVersion ,//34 读取版本号
JQ_Test_WriteFacBuff ,//35 写缓存数据
JQ_Test_VerifyFacBuff ,//36 验证缓存数据
(void*)0 //数组结束
};