【经验】测试工装排错小结

最近在整产品测试工装,看起来很简单的几项检测功能,前后也就几百行代码,但是却花了两周时间将功能调试出来,过程可谓一波三折,现总结如下。

1:对于电源控制类的检测,最好考虑下电平稳定时间。

我们的工装因为需要和被测试板子交互,工装先向被测试板子发送检测命令,被测试板子在对电磁阀水泵类进行控制,工装则表现为读取被测试板子的电平,理论上是命令发送上去,就可以马上读取到相应的电平,顶多延时几个毫秒,但是实际测试时发现至少需要延时几百个毫秒,电压才会稳定。这点确实在我意料之外,怪不得每次单步调试能过,但是全速运行就挂了,这个原因找了很久,因为在检测串口电路时,检测电平时间就相当快,几乎不需要延时等待,还是想到设置断点单步运行时相当于延时想到的电压稳定时间的问题。

2:对于被测试板子没有反馈如何检测呢?

最好的办法是将串口用排针引出来,用另外一个串口线监听串口链路的数据交互,对于调试特别方便,这个方法在调试时让我快速找到原因,之前有个选项一直过不去,但是测试工装命令已经发出去了,但是工装错误指示灯一直闪烁,当时我想了几种情况:1 被测试板子可能没接收到命令或者解析错误了 2 工装没有接收到命令或者解析错误了。 对于这种情况,我一开始时在被测试板子里面设置了蜂鸣器,接受到正确的命令就鸣叫(真的好吵),每次都work,说明发送是没问题的,那就是接受了,对于接受,我使用了设置断点的方法,但是只能看到一串乱七八糟的数据,我怀疑是被测试板子发错了命令,但是仔细检查了下被测试板子的命令没有发错,搞得特别纠结,还好我想到了直接在板子下面的串口排针上面在飞几跟线用杜邦线监听数据,通过看数据,发现被测试板子竟然发送了好多似曾相识的数据,哇靠,原来是被测试板子(我们的产品测试代码和产品代码同一个工程中)里面有几条测试命令没有被宏开关屏蔽掉,这几条数据连续死命发一下就将工装的串口被刷爆了buf,特别无语找了好几天。

3:对于测试工作的离线烧录器,最好买个产品文档详细些的,我就被这玩意折腾了好几天,买的msp430的离线烧录器要每次先执行一遍才会有记忆功能,这个文档从来没有说过,搞得还以为工具坏了。。。。。。

4:被测试工装的板子,如果有条件的话还是让焊接水平高些的焊接比较好,不然很多问题无法定位,上面的问题当时我们都考虑过是不是焊接和飞线干扰的,而且还要先写测试代码先检测下工装板子,挺费劲的。

最后给大伙一句话:当项目出现问题时,可以大胆假设(最好有根据,不要瞎扯),小心求证!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC拦截器和过滤器执行顺序及区别

拦截器(Inteceptor)和过滤器(Filter)执行顺序? 拦截器和过滤器区别? 1、拦截次数不同: 过滤器:一次请求只能被一个过滤器拦截一次,它们按照在web.xml中的声明顺序依次执…

RBAC详细解释

关于RBAC **RBAC** **R**ole **B**ased **A**ccess **C**ontrol(基于角色的访问控制) RBAC是经典的用户权限管理的设计思路。在这样的设计中,会存在3种类型:用户、角色、权限,权限将分配到各种角色上,用户…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑净负荷均衡的分布式光伏集群电压调控策略研究》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

遗传算法理解与代码实战(二)- demo(python+deap)

前文介绍了遗传算法,并且手动python代码进行了实践,但是在遇到复杂的问题时(遗传算法理解与代码实战(三)会介绍),手写代码很麻烦,所以需要借助专门的遗传算法库来实现,这…

使用IAD电话交换机(语音网关)将电话外线对接到FreeSWITCH SIP服务器

在我们初步了解了FreeSWITCH这样的SIP服务器之后,常见的一个需求就是把真实的电信世界(比如固话、手机)对接到SIP服务器里。 今天我们就介绍一个简单的方法,在3分钟内就把电信局和你的SIP软交换机融合通信起来。 IAD和SIP服务器环…

Superset二次开发之Superset架构理解

技术框架 框架作用 前端 React构建用户界面的 JavaScript 库ReduxJavaScript 应用的状态管理库,管理组件间的状态共享Webpack前端资源打包工具BabelJavaScript 编译器D3.js数据可视化的 JavaScript 库后端 Flask轻量级的 Python web 框架,处理 HTTP 请求、路由以及其他 Web 服…

搜维尔科技:动作捕捉与数字时尚:Wondar Studios欧莱雅项目

来自意大利的Wondar Studios工作室,是一家制作与动作捕捉技术相关软件和内容的公司,其出品的三维角色动画均由专业动捕系统真实录制制作。 我们很高兴与大家分享Wondar Studios最新的动捕项目,该项目带来了身临其境的虚拟现实体验。他们与巴…

AI新工具 MacOS 翻译提供翻译、润色和语法修改功能的插件;AI生成 Excel公式;Deepmind前华人员工创建视频生成工具

1: OpenAI Translator Bob Plugin macOS 平台的翻译提供翻译、润色和语法修改功能的插件 OpenAI Translator Bob Plugin是一款基于OpenAI的API,为用户提供翻译、润色和语法修改功能的插件。这款插件专门为macOS平台上的Bob软件设计,通过使用先进的Chat…

fork属性的作用

在Maven中,fork属性是maven-compiler-plugin插件的一个配置选项。它的作用是控制是否为编译过程启动一个新的进程。当fork设置为true时,Maven将启动一个新的进程来执行编译,这允许你在本地的Java编译器之外使用其他Java编译器,例如…

矩阵键盘中为什么有键位并联二极管?

矩阵键盘上使用二极管主要是为了解决“幽灵键”(Ghosting)和“键盘冲突”(Key Jamming)问题,这两种现象在没有采取适当措施的矩阵键盘中很常见。 幽灵键现象 当用户在矩阵键盘上同时按下多个键时,由于电流…

笔试刷题记录(二)

数值操作类型转换 class CompareReference{public static void main(String [] args){float f42.0f;float f1[]new float[2];float f2[]new float[2];float[] f3f1;long x42;f1[0]42.0f;} }A f1f2 B xf1[0] C f1f3 D f2f1[1]BC正确,选项B解释,java核…

如何定义resultType和resultMap,它们之间的区别是什么?解释一下<parameterType>的作用和用法。

在MyBatis中,resultType和resultMap都用于将数据库查询结果映射到Java对象,但它们在使用方式和灵活性上有一些区别。 resultType resultType是一个简单的类型别名,它用于指定查询结果应该映射到的Java类型。当数据库表中的列名和Java对象的属…

设计模式-建造者模式实践案例

建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式。当一个对象需要多个部分或许多步骤来创建,并且需要将创建过程与表示分离时,建造者模式非常有用。建造者模式旨在找到一个解决方案&…

C#使用泛型自定义的方法设计队列CQueue<T>类

目录 一、涉及到的知识点 1.C#中的队列类 2.自定义队列的方法 &#xff08;1&#xff09;先设计一个CList<T>类 &#xff08;2&#xff09;再设计CQueue<T>类 二、自定义队列CQueue<T>类的实例 一、涉及到的知识点 1.C#中的队列类 在C#中实现队列类&a…

数据仓库实战 第一讲

第一节 数据仓库的定义 数据仓库的优势 面向主题集成相对稳定反映历史变化 数据仓库的架构 特点 简单通过暂存区简化数据准备星型结构沙盒 &#xff08;提供专用安全区域&#xff09; 云数据仓库 特点 弹性&#xff08;高扩展性能&#xff09;简单易用易于管理节约成本…

线性代数的学习路线

线性代数是数学的一个重要分支&#xff0c;它主要研究向量空间和线性映射。学习线性代数的线索可以从以下几个关键点展开&#xff1a; 向量的内积&#xff1a;了解向量的内积概念&#xff0c;它是衡量两个向量之间关系的一种方式&#xff0c;可以用来计算向量的长度和角度。矩…

Git误操作补救错失:恢复误删的本地分支、将某个提交从一个分支复制到另一个分支

一、恢复误删的本地分支 作为一枚强迫症&#xff0c;没用的分支总是喜欢及时删删删删掉删掉统统删掉&#xff0c;结果今天发现有些分支还是应该保留。 比如&#xff0c;①前段时间切了个分支用来专门做图表&#xff0c;但因为需求还没有最终确定&#xff0c;已经上线了测试服而…

数据库-第八/九章 数据库编程和优化【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第八章 数据库编程8.1 嵌入式SQL8.2 嵌入式sql语…

Java实战:电商平台通用取货码设计

在电商平台中&#xff0c;取货码是一种常见的机制&#xff0c;用于验证用户身份并允许他们从仓库或商店取货。一个好的取货码设计可以提高用户体验&#xff0c;增强安全性&#xff0c;并简化物流流程。本文将深入探讨电商平台通用取货码的设计原理&#xff0c;包括安全性、唯一…

UE4 Niagara 关卡4.1官方案例解析

we now directly supporting playing audio from arbitrary locations in particle systems.users have control over volume and pitch,and the system can directly play sound waves,or sound cues which have multiple waves in them.(我们现在直接支持在粒子系统中从任意…