移植Test命令,验证成功
EJ EX 写工厂信息验证成功
This commit is contained in:
@@ -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 //数组结束
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user