1:对于电源控制类的检测,最好考虑下电平稳定时间。
我们的工装因为需要和被测试板子交互,工装先向被测试板子发送检测命令,被测试板子在对电磁阀水泵类进行控制,工装则表现为读取被测试板子的电平,理论上是命令发送上去,就可以马上读取到相应的电平,顶多延时几个毫秒,但是实际测试时发现至少需要延时几百个毫秒,电压才会稳定。这点确实在我意料之外,怪不得每次单步调试能过,但是全速运行就挂了,这个原因找了很久,因为在检测串口电路时,检测电平时间就相当快,几乎不需要延时等待,还是想到设置断点单步运行时相当于延时想到的电压稳定时间的问题。
2:对于被测试板子没有反馈如何检测呢?
最好的办法是将串口用排针引出来,用另外一个串口线监听串口链路的数据交互,对于调试特别方便,这个方法在调试时让我快速找到原因,之前有个选项一直过不去,但是测试工装命令已经发出去了,但是工装错误指示灯一直闪烁,当时我想了几种情况:1 被测试板子可能没接收到命令或者解析错误了 2 工装没有接收到命令或者解析错误了。 对于这种情况,我一开始时在被测试板子里面设置了蜂鸣器,接受到正确的命令就鸣叫(真的好吵),每次都work,说明发送是没问题的,那就是接受了,对于接受,我使用了设置断点的方法,但是只能看到一串乱七八糟的数据,我怀疑是被测试板子发错了命令,但是仔细检查了下被测试板子的命令没有发错,搞得特别纠结,还好我想到了直接在板子下面的串口排针上面在飞几跟线用杜邦线监听数据,通过看数据,发现被测试板子竟然发送了好多似曾相识的数据,哇靠,原来是被测试板子(我们的产品测试代码和产品代码同一个工程中)里面有几条测试命令没有被宏开关屏蔽掉,这几条数据连续死命发一下就将工装的串口被刷爆了buf,特别无语找了好几天。
3:对于测试工作的离线烧录器,最好买个产品文档详细些的,我就被这玩意折腾了好几天,买的msp430的离线烧录器要每次先执行一遍才会有记忆功能,这个文档从来没有说过,搞得还以为工具坏了。。。。。。。。。
4:被测试工装的板子,如果有条件的话还是让焊接水平高些的焊接比较好,不然很多问题无法定位,上面的问题当时我们都考虑过是不是焊接和飞线干扰的,而且还要先写测试代码先检测下工装板子,挺费劲的。
最后给大伙一句话:当项目出现问题时,可以大胆假设(最好有根据,不要瞎扯),小心求证!