0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件调试和硬件调试具体操作方式上的差别

射频美学 来源:硬件十万个为什么 作者:许雪松 2022-11-04 09:46 次阅读

软件调试和硬件调试都是调试,思路差不多,一些具体操作方式上有所差别。这是我在工作中总结的一些认识:

1.调试总的指导思想是,任何一个实验应该唯一说明一个问题。成功了,唯一的结论是推论是成功的;失败了,唯一的结论是推论是失败的。这都是带有唯一性的。实际操作中可能并不好做到,但其中的一个唯一应该是可以做到的。

2.由于软件硬件的耦合,杂散参数的影响。根本问题一样,可能现象每次发生都不一样。大胆的假设,仔细的求证是调试中是可以依托的一个大法宝。

3.经验总得来说,是一种实践过程中的总结和记忆。一般来讲,经验往往带有不精确性和一些大前提。在下一个项目或调试中应用这些经验,要确认这些不精确性和前提。如同定理一样,说三角形内角和是180度,在欧氏几何里是正确的,在曲面几何里就不正确了。所以,定理公理都是有应用前提,经验也逃脱不了这些问题。

一次和朋友去吃饭,他讲了个生动的例子:老婆和别人打八十分。那个算得精啊,每张牌都记住了算到了,准备把手里的一对AA,KK给出了。拖拉机啊。出去了就被别人给灭了,原来她还以为在打两幅牌的,他们在打得是三幅牌的……
也是够悲催的。

4.要对调试的系统的原理比较熟悉。不熟悉是不行的,考虑问题很可能就没有边界和方向。这也怀疑那也怀疑,变成了什么都怀疑,迷失了方向,面也太大了,不利于问题的解决。

5.现象的分析。解决问题都是从现象入手,现象要分清楚主次。结合设计的原理,分析出现象之间的关系,抓主要矛盾。次要现象很可能在主要现象解决后,伴随着一起消失。

6.缩小包围圈。有时候问题过于复杂,现象五花八门,可考虑剥洋葱的办法。试探性的去逼近核心问题。比如说,一个溢出错误,很可能产生一系列的连锁反应。也并不是一定会出现。可试探性的增大缓冲区,调整栈,看看有没有缓解;或者缩小缓冲区和栈,试探性看看程序的反应。对问题的现象做到心中有数。

7.对比法,在遇到一些复杂的问题的时候,不能解决。若有参照物,也可以定位问题。但对比法要注意一点,只有条件相同或相近的情况下,系统结构相同或相近下才有意义。否则比较会大大的降低可比性以及结果的意义。比如说一个软件模块或硬件模块,在其他系统上正常,在本系统上不正常。可推测为使用的问题。输入参数、输出参数,动态运行的条件不满足。

9.置换法,这个比较简单,一个一个换,换到有问题的那个,问题解决了,自然也就定位问题的所在点了。也可以把目标系统的模块置换到正确的系统上,看看能不能正常工作。

10.分治法,分治法是分而治之,各个击破的方法。现象很多,按照原理将现象分类。相关联的现象可作为一组,综合考虑。

11.调试分层次,经常使用的功能,重要的核心功能应该先调试,而次要的,不常用的功能最后调试。

12.最后,细致的观察。观察可以区别两种差别不大的现象;可以明确经验的应用范围;可以解决一些非常棘手的问题。Jtag不是万能的,会影响程序的速度和执行的频度;printf影响 栈的深浅以及运行时序;示波器探头是个负载,信号可能驱动不起来……这些问题一般都是细微的现象,非常容易被忽视,唯有细致的观察仔细的思考才可以捕捉。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件调试
    +关注

    关注

    0

    文章

    4

    浏览量

    6148
  • 硬件调试
    +关注

    关注

    1

    文章

    8

    浏览量

    10659

原文标题:如何找到解决问题的思路和方法——关于软硬件调试

文章出处:【微信号:射频美学,微信公众号:射频美学】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RK3568 EDP接口调试

    RK3568支持多种接口,本文主要介绍通过edp显示接口驱动edp显示屏的具体操作方法以及调试记录。
    的头像 发表于 09-20 09:57 1581次阅读
    RK3568 EDP接口<b class='flag-5'>调试</b>

    嵌入式硬件调试软件调试

    机ROM的可执行程序,也可以是一个专门的硬件调试设备,它负责监控目标机上被调试程序的运行情况,能够与宿主机端的调试器一同完成对应用程序的
    发表于 03-10 10:44

    请问在ZLLClassical Join 的入网方式是怎样的?我该如何具体操作

    功能没有问题, Touch搜到light,ON/OFF控制 light,问题:1、在ZLLClassical Join 的入网方式是怎样的,我该如何具体操作?以上问题请Ti工程师或员工能在百忙中给予解答,Thanks.附上 抓包图1、Bridge建立网络后如图:2、Lig
    发表于 05-22 05:44

    求ATmega168看门狗复位的具体操作过程?

    ATmega168看门狗复位的具体操作过程
    发表于 11-18 07:17

    看门狗定时器的具体操作

    看门狗定时器(WatchDog Timer)在出现程序跑飞卡死的时候用来强制复位处理器或控制器。具体操作是:通常程序正常循环会在一定周期内进行“喂狗”,若程序执行一个错误代码或者程序卡死,将不
    发表于 11-10 07:15

    移植Miracl库的具体操作步骤

    一篇文章中我们为大家介绍了嵌入式设备中支持国密算法的几种方法。本篇我们详细的介绍一下第一种方法:移植Miracl库的具体操作步骤。第一步 获取源码MIRACL密码库是开源软件,可以直接到官网下
    发表于 12-21 06:57

    AssistiveTouch的辅助功能锁定屏幕如何具体操作

    ?和小编一起来看看吧!具体操作方法AssistiveTouch 使您可以使用 iPhone 或 iPad 触摸屏的简单菜单选项模拟身体动作、手势和按钮按下。这包括锁定屏幕和重新启动设备。要启用它,首先,打开 iPhone 或 iPad
    发表于 12-31 07:04

    OTA的原理是什么?rt-thread的OTA具体操作过程是怎样的

    目录一、测试平台二、过程1.先明白OTA的原理2.搞清楚OTA的原理后,再看rt-thread的OTA具体操作过程,先生成通用的Bootloader3.通用bootloader弄完后,再把OTA
    发表于 02-14 06:36

    使用CH340来下载烧录或调试具体操作步骤有哪些

    CH340是什么?有何特点?使用CH340来下载烧录或调试具体操作步骤有哪些?
    发表于 02-24 07:05

    Protel在线教程:如何在PCB中给PCB补泪滴的具体操作

    Protel在线教程:如何在PCB中给PCB补泪滴的具体操作 仔细看这里,我们将学会做给PCB补泪滴的具体操作 
    发表于 04-22 09:02 7997次阅读
    Protel在线教程:如何在PCB中给PCB补泪滴的<b class='flag-5'>具体操作</b>

    Protel在线教程:在PCB中给PCB做覆铜的具体操作

    Protel在线教程:在PCB中给PCB做覆铜的具体操作
    发表于 04-22 09:03 3995次阅读
    Protel在线教程:在PCB中给PCB做覆铜的<b class='flag-5'>具体操作</b>

    Allegro打过孔的具体操作步骤

    Allegro有一个非常好用的打过孔功能,可以在信号线旁边快速打孔,提升了工作效率,避免手动打过孔的烦恼,具体操作步骤如下(本文使用的是Allegro17.4,其他低阶版本使用方法大致相同):点击
    的头像 发表于 10-17 09:38 3269次阅读

    PCB电镀工艺流程及具体操作方法

    线路板的电镀工艺,大约可以分类:酸性光亮铜电镀、电镀镍/金、电镀锡,文章介绍的是关于在线路板加工过程是,电镀工艺的技术以及工艺流程,以及具体操作方法.
    发表于 02-07 15:27 5189次阅读

    差分探头的使用具体操作步骤

    品致差分探头是一种专业用于电路测量的精密测试设备,其独特的差分设计能够有效消除噪声干扰,提高信号测量的精確度。下面PRBTEK将为大家介绍品致差分探头的具体操作方法。
    的头像 发表于 04-03 11:18 3075次阅读
    差分探头的使用<b class='flag-5'>具体操作</b>步骤

    威纶通触摸屏远程上下载程序需要什么工具?具体操作步骤是什么?

    威纶通触摸屏远程上下载程序需要什么工具?具体操作步骤是什么?
    的头像 发表于 01-17 15:34 1554次阅读
    威纶通触摸屏远程上下载程序需要什么工具?<b class='flag-5'>具体操作</b>步骤是什么?