软硬件调试九法:第七条规则 检查插头

1、质疑你的假设

  你十分运行了正确的代码?电源插头是否已插好? 比如网络连接失败了,是不是你不小心把网线接头踢掉了?比如汽车无法启动,是否油箱没油了? 有时我们看到一个问题,通常在某个特定位置看到了正确的问题,但是导致这个问题的却在上游或者底层驱动上,只是系统不具备正确操作条件时,出现了奇怪的表现。

2、从头开始

  是否正确的对内存进行了初始化?电源开关是否已经打开? 比如如果你的程序序需要初始化内存、全局变量、局部变量,而你又没有这么做,那么情况会很糟,它会让你自己测试时是运行正确的,到客户演示时就出错了。

3、对工具进行测试

  编译器的参数设置是否正确?测量工具是否没电了?

  实际案例:

  1. 在使用IAP引导程序时,应用程序的起始地址应该在编译器中正确设置,否则下载完成后无法运行。
  2. 在选择单片机时,型号要正确,假设你使用的MCU内存只有8K,编译时选择的MCU型号内存有16K,程序实际使用的内存为8.2K,编译不会报错,但是运行时,程序可能随机崩溃。
  3. 之前使用稳压源供电,电路板一上电就显示电流800mA,但是系统能运行起来,但是部分硬件出错,起初怀疑硬件有问题,后来发现是稳压源供电能力不足导致。
  4. 工具本身也有bug, 比如编译器,因为其也是工程师设计的,为什么它比你的软件更值得信任呢?Keil编译器本身也有bug,之前使用Keil C51时,其中一个bug使会过滤程序中的汉字内码中的“0xFD”,导致程序出错,在使用点阵汉字显示时,我是实际遇到并必须使用国内网友提供的bug补丁才解决的!
时间: 2024-10-14 03:57:19

软硬件调试九法:第七条规则 检查插头的相关文章

(知识分享)软硬件调试九法:第九条规则 如果你不修复一个bug,它将永远 存在

1.查证问题确已被修复 如果遵循了“制造失败”这条规则,就知道如何验证你确实修复了问题.无论问题和修复看起来多么明显,你都无法保证修复是有效的,直到做了测试并验证. 2.查证确实你的修复措施解决了问题 如果你取消这个修复,系统再次出现失败,再应用这个修复,问题消失,才能够证明你确实修复了问题.这样做的原因是,在调试期间,往往会改变一些不属于修复的地方,有时这些改变会隐藏问题,如果没有意识到这一点,发现测试起作用了,就高高兴兴的回家了,因为你做的修复和问题消失毫无关系,因此修复方案到达客户后,可能

软硬件调试九法:第五条规则 一次只改一个地方

1.隔离关键元素 就像小学生物课,考察阳光对植物生长的影响,则需要保持养分.灌溉.生长温度等完全一致,一个有阳光照射,一个没有阳光照射,这样才能比较出阳光对植物的生产的影响.bug查找过程也要如此,在查找一个具有多个参数的函数的计算错误时,固定其它参数,同时修改一个参数的输入值,验证输出结果是否正确,从而可以确定是哪个参数导致的计算错误,确定bug. 2.一次只改一个测试 软件工程师有时为了修复一个问题而修改了一个地方,但这个修改没有解决问题,而他又认为这不会产生影响,这是一个错误的假设,这个改

软硬件调试九法之总序

前言: 1.本文内容主要来源于书籍<调试九法:软硬件错误的排查之道>作者David J.Agans,属于读书笔记+个人体会. 2.本书介绍的方法的宗旨不是预防.保障和筛选,以预防bug的产生,而是如何找到bug并修复它们,如何高效的追踪和解决不易察觉的软硬件问题,不针对特定的平台.语言或者工具,不涉及晦涩的测试理论.3.你看过后,可能会咦一声,说“我一直都是这么做的!”,那么恭喜你,你是一个能高效解决问题的工程师. 书中提到了九条规则,可以说是总结的系统而全面,按照这些步骤和要求来做,对解决工

软硬件调试九法:第四条规则 分而治之

1.通过逐次逼近缩小搜索范围        通过二分法,逐次缩小问题范围,在查找问题时,这个方法是唯一需要应用的规则,所有其它规则都是帮助你遵循这条规则.首先搜索前面1/2,如果有错,则再搜索前1/4,如果没错,则搜索范围就定在1/4-1/2之间,然后再次细分,几次之后就会找到问题. 实际案例:有次程序运行反应很慢,特别是蜂鸣器响一次后,要几秒钟的时间,才能相应按键.因此就采用这个方法,很快确定慢是由等待蜂鸣器时间过长导致,从程序逻辑看,等待蜂鸣器结束函数并没有错误,但是其中while循环等待的

软硬件调试九法:第六条规则 保持审计跟踪

1.把你的操作.操作顺序和结果全部记录下来 要记录所做的事.做事的顺序.以及发生的结果,每次做完都要全部记录.就像调试硬件一样,必须指导每个步骤以及执行结果,才能确定下一步关注的重点. 2.要知道,任何细节都可能是重要的 有时bug报告可能就有一句简单的话,比如仪器显示出错了,或者仪器无法正常工作,这样的内容对测试人员没有实质帮助,除了记录发生的事情,还要注意的细节是问题的严重程度,以便判断是否需要立即修复. 3.把时间关联到一起 症状与调试信息关联起来是非常有用的,比如报告“蜂鸣器在测量结束时

软硬件调试九法:第三条规则 不要想而要看

凭空想象,问题的原因很多,实际的原因只有看了才能发现! 如果猜测失败是如何发生的,那么常常会修复一些不是bug的问题,不仅浪费时间.还会破坏其它地方,因此不要这样做. 在医学领域,有听诊器.抽血化验.X透视.B超等方法.同样 在软件中,观察的方法有设置断点.添加调试语句.监视程序值.以及检查内存等方法.硬件方法有通过示波器.逻辑分析仪.示波器等工具测试信号.时序和线路阻抗等方式.当错误的假设别否定后,找到bug的工作量和之前相比一样多,但是给你时间变少了,因此必须依靠下面的原则进行. 1.观察失

(知识分享)软硬件调试九法:第八条规则 求助他人, 获得全新观点

1.征求别人意见 我们都是普通人,对任何事情都有偏见或者思维定式,包括对bug隐藏在哪里的看法,这些偏见会导致我们无法看清实际情况.其它人则从另一个角度看问题(可能也是他自己的偏见),但是会找到新的方法,对你解决问题有很大启发. 2.获取专业知识 有时系统的某个部分的知识看起来很神秘,我们不必到学校学习一年,而是通过咨询专家快速掌握那些知识,任何情况下,专家都会比我们更理解系统,因此他们能知道查找问题的大致线路图,为你的搜索工作提供很好的提示. 3.听取别人经验 你可能经验不足,但是你想周围的人

《调试九法&mdash;&mdash;软硬件错误的排查之道》【PDF】下载

<调试九法--软硬件错误的排查之道>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196352 内容简介 <调试九法:软硬件错误的排查之道>主要介绍了调试方面的9条黄金法则,并结合实际的环境讲述了如何合理地运用它们.<调试九法:软硬件错误的排查之道>的内容没有针对任何平台.任何语言或者任何工具,讲述的重点是找到出错的原因并修复它们,高效地追踪和解决不易察觉的软硬件问题. <调试九法:软硬件错误的排查之道>

《调试九法:软硬件错误的排查之道》

调试九法概要思维导图 文字概要 理解系统 这是第一条股则,因为它是最重要的. 阅读手册.它会告诉你在使用除草机时,要在除草头上涂润滑油,这样除草绳就不会被烧化. 仔细阅读每一个细节.关于微处理器如何处理中断的详细信息就隐藏在数据手册的第37页. 掌握基础知识.点据本身就会发出很大的噪声. 了解工作流程.引擎的转速可能与轮胎的转速不同,这是由传动轴造成的. 了解工具.弄清楚体温计的哪一端才是用来测量体温的,弄清楚Glitch-O-Matic逻辑分析器的强大功能是如何使用的. 查阅细节.连爱因斯坦都