测试机:爱德万93K
FT采集中断
连续测试中断,Handler联机测试开始第一次总是中断,最终定位原因:pattern名称重复,导致调用混乱。
其中包括两次32帧的数据采集,两次调用的均为burst-pattern,但实际上内容每次都被刷新,应是64帧才对,拆开测试后,正常。
修改前,其中Burst_ooc_trim_2
为第二次使用,在前面测试中已用过一次,被刷新了50帧数据,第二次仅用了32帧
rdi.digCap().burstUpload().begin();
for(int i=0;i<Frame_count_cap;i++)
{
rdi.port("in_port").func().burst("Burst_ooc_trim_2").execute();
rdi.port("out_port").smartVec().pin("ALL_CAP_PINS").fillVec("X",2809, 0).execute();
for (int loop=0; loop<298; loop++ )
{
int id=i*1000+loop;
if (i==0 && loop==0)
{
rdi.port("out_port").smartVec().pin("ALL_CAP_PINS").fillVec("X",17,0).defaultVec("X").execute();
}
else
{
rdi.port("out_port").smartVec().pin("ALL_CAP_PINS").fillVec("X",18,0).defaultVec("X").execute();
}
rdi.port("out_port").digCap(rdi.itos(id)).pin("DO0").samples(sample_count).initDiscard(0).capMode(TA::PAR).cont();
rdi.port("out_port").digCap(rdi.itos(id)).pin("DO1").samples(sample_count).initDiscard(0).capMode(TA::PAR).cont();
rdi.port("out_port").digCap(rdi.itos(id)).pin("DO2").samples(sample_count).initDiscard(0).capMode(TA::PAR).cont();
rdi.port("out_port").digCap(rdi.itos(id)).pin("DO3").samples(sample_count).initDiscard(0).capMode(TA::PAR).execute();
rdi.port("out_port").smartVec().pin("ALL_CAP_PINS").fillVec("X",1314, 0).execute();
}
}
rdi.digCap().burstUpload().end();
修改后,提前做好pattern,获取数据时用对应pattern名,一对一获取
CAPTURE_data0_32_all=VECTOR("_DO0__dcap_burst_out_port__md5_8b870c9cee7b0743bbcf8aaa0822aca4").getVectors();
CAPTURE_data1_32_all=VECTOR("_DO1__dcap_burst_out_port__md5_d7a68427f9bfbf121befad4299cb3d69").getVectors();
CAPTURE_data2_32_all=VECTOR("_DO2__dcap_burst_out_port__md5_b79d103d834d686a8909203643542159").getVectors();
CAPTURE_data3_32_all=VECTOR("_DO3__dcap_burst_out_port__md5_9e5ae82e273f7ffb2b63daafe788a5f2").getVectors();
CP采集中断
也是连续运行过程中出现的中断异常,没有详细信息,最终定位原因为变量定义,将定义放入protect中正常。
修改前:
class DCAP: public testmethod::TestMethod {
ARRAY_I CAPTURE_data0_1;
ARRAY_I CAPTURE_data1_1;
ARRAY_I CAPTURE_data2_1;
ARRAY_I CAPTURE_data3_1;
//省略部分
int CAPTURE_data0_ALL[79277184];
int CAPTURE_data1_ALL[79277184];
int CAPTURE_data2_ALL[79277184];
int CAPTURE_data3_ALL[79277184];
int CAPTURE_data0[64][522][2373];
int CAPTURE_data1[64][522][2373];
int CAPTURE_data2[64][522][2373];
int CAPTURE_data3[64][522][2373];
protected:
virtual void initialize()
{
}
}
修改后:
class DCAP: public testmethod::TestMethod {
protected:
virtual void initialize()
{
}
ARRAY_I CAPTURE_data0_1;
ARRAY_I CAPTURE_data1_1;
ARRAY_I CAPTURE_data2_1;
ARRAY_I CAPTURE_data3_1;
//省略部分
int CAPTURE_data0_ALL[79277184];
int CAPTURE_data1_ALL[79277184];
int CAPTURE_data2_ALL[79277184];
int CAPTURE_data3_ALL[79277184];
int CAPTURE_data0[64][522][2373];
int CAPTURE_data1[64][522][2373];
int CAPTURE_data2[64][522][2373];
int CAPTURE_data3[64][522][2373];
}
TCCT运行中断
该问题比较烦人,其实TCCT之前运行过很久都是正常的,但是这个异常出现了两次,除UI报了数据量不够外,TCCT界面卡住,LOT-status异常。原因定位:TSK-config设置的时候第一次选择错误,reload正确的后,测试会出现该异常。解决办法:选择错误的时候,必须重启TCCT,否则reload时仍然会存留第一次load的信息