您的位置:网站首页 > 硬件知识 > 正文

软硬件调试九法:分而治之

类别:硬件知识 日期:2018-8-5 13:24:08 人气: 来源:

  90后摸鸟门事件通过二分法,逐次缩小问题范围,在查找问题时,这个方法是唯一需要应用的规则,所有其它规则都是帮助你遵循这条规则。

  通过二分法,逐次缩小问题范围,在查找问题时,这个方法是唯一需要应用的规则,所有其它规则都是帮助你遵循这条规则。首先搜索前面1/2,如果有错,则再搜索前1/4,如果没错,则搜索范围就定在1/4-1/2之间,然后再次细分,几次之后就会找到问题。

  实际案例:有次程序运行反应很慢,特别是蜂鸣器响一次后,要几秒钟的时间,才能相应按键。因此就采用这个方法,很快确定慢是由等待蜂鸣器时间过长导致,从程序逻辑看,等待蜂鸣器结束函数并没有错误,但是其中while循环等待的蜂鸣器结束标志的变量,是在中断中处理的,该标志由于未定义为volatile类型,因此被编译器优化后,循环判断时只获取一次,所以只有循环延时超时退出时才结束。改为volatile类型后,问题解决。

  在存储器读写测试、通讯数据偶尔失败测试时,发送00 55 AA FF或者1到100连续数据比使用随机数据更容易发现错误。在测试彩色显示屏颜色失真时,采用红绿蓝黄等色条比图片要容易发现问题。

  实际案例:有次使用TFT显示图片,黑白的显示正常,彩色的颜色失真,并且毛刺严重,以为显示屏有质量问题,使用彩色条后,发现显示和颜色和设定的不一致,仔细对比才发现驱动程序发出的16位数据,按照字节发送时,数据,所以调整后显示正常。

  有时我们很难相信一个系统有很多bug,这使得分而治之的隔离原则变得困难,因此如果确实查明了其中一个问题时,应该立即修复它,然后再查找其它问题。只有修复了已知的错误,才能集中精力查找其它问题,有时修复一个问题,另一问题也消失了,也就是两个问题时是一个bug。

  在硬件中,噪音也可能因此各种难以查找的间歇性问题,因此查找问题前,应该首先注意短时脉冲干扰、时钟回波、模拟信号噪声、时序波动等不稳定因素;

  在软件中,不合理的多线程、意外的冲入例程、未初始化的局部变量都会导致系统产生很多随机行为,为工作带来很多麻烦。

  另外,技术人员很容易成为完美主义者,为了达到高质量,把所有不好的设计都修复一遍,可能会因为前面一个程序编写的看起来不好的程序代码就删掉重写,但是如果没有引起实际问题,最好还是保留他们吧,不要太过极端,你的精力在于找到bug并消除他们,这种修复耽误了真正的研究时间。

  本文由 325游戏(m.325games.com)整理发布

0
0
0
0
0
0
0
0
下一篇:没有资料

相关阅读

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

声明:网站数据来源于网络转载,不代表站长立场,如果侵犯了你的权益,请联系站长删除。

CopyRight 2010-2016 无痕网- All Rights Reserved