跳转到主要内容

调试

电路调试的步骤、注意事项及故障解决没那么简单!

demi /

实践表明,一个电子装置,即使按照设计的电路参数进行安装,往往也难于达到预期的效果。这是因为人们在设计时,不可能周全地考虑各种复杂的客观因素(如元件值的误差、器件参数的分散性、分布参数的影响等),必须通过安装后的测试和调整,来发现和纠正设计方案的不足,然后采取措施加以改进,使装置达到预定的技术指标。因此,调试电子电路的技能对从事电子技术及其相关领域工作的人员来说,是不应缺少的。

调试的常用仪器有:稳压电源、万用表、示波器、频谱分析仪和信号发生器等。

电子电路调试包括测试和调整两个方面。

调试的意义有二:
①是通过调试使电子电路达到规定的指标;
②是通过调试发现设计中存在的缺陷并予以纠正。

<strong>1、电子电路调试的一般步骤</strong>

传统中医看病讲究“望、闻、问、切”,其实调试电路也是如此。

嵌入式技巧:ARM的三种中断调试方法介绍

editor /

<strong>嵌入式软件开发流程</strong>

参照嵌入式软件的开发流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。

在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行入口的启动程序文件。

对后四种文件的理解很重要,其作用解释如下。

(1)链接脚本文件:在程序编译时起作用。该文件描述代码链接定位的有关信息,包括代码段,数据段,地址段等,链接器必须使用该文件对整个系统的代码做正确的定位。在SDRAM中调试程序、在FLASH中调试或固化后运行的链接脚本文件应加以区分。(在IDE开发环境中使用扩展名*.ld)

浅谈工程师的调试法宝(五):JScope的应用

editor /

摘要

J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。我们一起来了解一下J-Scope吧。

我们在前四篇的文档中介绍了MCU向调试终端输出信息的方法。今天就介绍一个更炫更酷、可以图形化显示数据的调试法宝—JScope。

J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要像SWO那样需要MCU上面额外的引脚,而是使用标准的调试接口。J-Link驱动4.90之后的版本都有这个软件哦。

J-Scope可以像示波器一样显示多个变量的值,通过读取一个ELF文件,允许选择一定数量的变量可视化,如图 1所示。你可以简单的将目标MCU连接到J-Link,并启动J-Scope软件。

浅谈工程师的调试法宝(四):RTT的应用

editor /

我们前三篇的文档中介绍的调试方法,都因为各种原因而不能在所有的MCU上做到通用,而今天这一切将发生改变。现在就一起来看一下这个神奇的调试工具-RTT。

RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都有这个软件哦。

用RTT可以从目标MCU上输出信息的同时也可以非常高速的向应用程序发送信息,并且不影响MCU的实时性。其实现原理就是J-link与MCU共享内存,具体实现细节感兴趣的读者可以自己去查阅下资料,本文以应用为主。RTT的工作框图如图 1所示。MCU通过J-link与电脑连接并将打印信息输出到电脑上,电脑同时可以通过键盘等向MCU发送数据。

<center><img src="http://mm32.eetrend.com/files/2016-10/wen_zhang_/100003532-11722-1.png&…; alt=""></center>

浅谈工程师的调试法宝(三):SWO引脚的巧妙应用

kelly /

在上一篇文档中,我们向大家分享了如何使用IAR本身自带半主机(semihost)模式来调试程序,但是每10ms输出一个字符的速度实在让人难以接受。今天就向大家介绍一个输出速率更快的,使用同样方便的调试方法-SWO引脚的使用。

在Cortex-M3\M4系列MCU中,内核的调试组件都有一个仪器化跟踪单元(ITM)。ITM的一个主要的用途,就是支持调试信息的输出(例如,printf格式输出)。ITM包含了32个刺激端口,允许不同的软件把数据输出到不同的端口,从而让调试主机可以把它们的信息分离开。每个端口都可以独立的使能/除能,还可以允许或禁止用户进程对它执行写操作。那么这些与MCU的SWO引脚有什么关系呢?刚才我们有说ITM包含了32个端口,其中SWO引脚,就是ITM模块的端口0,我们可以直接用它来输出一些调试信息。那么现在就看看如何使用它吧。

把MCU的SWO引脚同J-link等调试工具连接在一起,因为K64开发板已经直接引出SWD接口了,所以我们就直接连接了J-Link。如图 2所示,第6脚就是SWO引脚。

浅谈工程师的调试法宝(二):半主机的巧妙应用

editor /

在上一次文档中,我们阐述了如何使用printf函数在串口终端上打印输出,这种调试方法能在一定程度上满足我们的调试要求。但是有的时候串口资源已经被占用或为了节约开发时间不使用串口,这时我们就需要一个不依赖于MCU外设的调试方法。今天就向大家介绍一个非常经典的调试工具-半主机(semihosting)。

半主机是在调试ARM设备时,主机电脑可以与设备进行输入输出通信的一个机构。这个机构可以直接调用C语言库中类似printf和scanf的函数。这个机构的好处在于允许用户使用主机电脑的输入输出设备,方便了工程师们的软件开发过程。Semihosting 是通过设置软件中断(SWI)来实现的。调用了适当的软件中断和易于操作的软件中断的向量。关于半主机的实现原理,感兴趣的读者可以自行查阅资料,本篇文章重点介绍如何将半主机模式应用到实际的软件开发过程中。

打开IAR工程,在主函数文件起始处包含stdio.h文件,如下所示。

#include

在主函数中,我们调用printf函数打印一些与芯片有关的信息,编译完成之后,对工程按照图 2所示配置。

浅谈工程师的调试法宝(一):Printf串口输出

editor /

作为一名嵌入式软件系统工程师,掌握住高效快捷的调试方法,往往会在实际的项目开发中达到事半功倍的效果。今天就跟大家讲一讲我们在项目开发过程中,那些被我们忽视的调试法宝吧。

通过串口打印实时打印出MCU的运行状态,想必大家都有用过,可你是不是仍然停留在串口打印字符函数(比如说函数名是StringUartSend)都需要自己写的时代。纵然我承认你C语言功底很深厚,但是其实你已经OUT了。现在是讲究效率的时代,时间就是金钱,如果我们能够充分的利用C语言函数库,会让很多代码的编写变的很简单。

比如说,现在我们需要通过串口输出1个3位的10进制整数,变量名就叫A。按照之前的思路,先需要把A的个、十、百位等分别提取出来,然后转换成ASCII码存储到数组或指针里,最后通过StringUartSend函数把结果输出来。这时你也许会说,这就已经满足你的要求了,可是如果你要查看的数据是小数呢?转换起来是不是就浪费了很多运行空间。那么该怎么办呢?没事,printf函数可以轻松帮我们搞定。

Printf函数是一个格式化输出函数,《C程序设计高级教程》一书中有这样的描述:printf函数的作用是按照指定的格式将程序的数据输出到终端上,其一般形式为:

printf ( 格式控制,输出列表 );

【超实用】嵌入式开发中的几种调试方法,总有一款适合你!

kelly /

越来越多的人选择从事嵌入式开发工作,伴随而来的便是各种对硬件和寄存器的抓耳挠腮。你真的认为你现在的调试方式就是最合适的吗?先看看小粥为你带来的嵌入式调试实用秘籍!

使用集成开发环境开发基于ARM 的应用软件,包括编辑、编译、汇编、链接等工作全部在PC机上即可完成,调试工作则需要配合其他的模块或产品方可完成,目前常见的调试方法有以下几种:

<strong>1、指令集模拟器</strong>

优点:部分集成开发环境提供了指令集模拟器,可方便用户在 PC 机上完成一部分简单的调试工作。

缺点:由于指令集模拟器与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。

<strong>2、驻留监控软件</strong>

优点:驻留监控软件( Resident Monitors )是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯 端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。

教你如何调试新电路板?!

kelly /

对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。对于刚拿回来的新PCB板,我们首先要大概观察一下,板上是否存在问题,例如是否有明显的裂痕,有无短路、开路等现象。如果有必要的话,可以检查一下电源跟地线之间的电阻是否足够大。

然后就是安装元件了。相互独立的模块,如果您没有把握保证它们工作正常时,最好不要全部都装上,而是一部分一部分的装上(对于比较小的电路,可以一次全部装上),这样容易确定故障范围,免得到时遇到问题时,无从下手。一般来说,可以把电源部分先装好,然后就上电检测电源输出电压是否正常。如果在上电时您没有太大的把握(即使有很大的把握,也建议您加上一个保险丝,以防万一),可考虑使用带限流功能的可调稳压电源。先预设好过流保护电流,然后将稳压电电源的电压值慢慢往上调,并监测输入电流、输入电压以及输出电压。如果往上调的过程中,没有出现过流保护等问题,且输出电压也达到了正常,则说明电源部分OK。反之,则要断开电源,寻找故障点,并重复上述步骤,直到电源正常为止。

接下来逐渐安装其它模块,每安装好一个模块,就上电测试一下,上电时也是按照上面的步骤,以避免因为设计错误或/和安装错误而导致过流而烧坏元件。

寻找故障的办法一般有下面几种: