ATE测试几个中断异常的处理

测试机:爱德万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的信息
TCCT运行时报错

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值