逻辑分析仪在嵌入式开发调试中的应用

发布者:心灵清澈最新更新时间:2012-11-05 来源: 21ic 关键字:逻辑分析仪  嵌入式  开发调试 手机看文章 扫描二维码
随时随地手机看文章
在嵌入式开发调试中,开发人员的调试手段包括断点、触发和跟踪三种。随着集成电路技术的发展,新一代的嵌入式处理器集成度和工作频率越来越高,芯片封装形式也越来越趋向表贴化。在线调试器(ICD)与逻辑分析仪的组合开发调试平台越来越多地成为广大的新一代嵌入式处理器的开发人员实现上述三种调试手段的首选。

开发人员使用断点功能控制所调试的应用程序的起和停。使应用程序运行到自己想要调试的程序上。通过观察在断点处的应用程序的变量以及寄存器和存储器的值检测所调试的应用程序运行是否正确。断点是开发人员经常使用的调试手段。

断点,顾名思义就是(应用程序)停下来的地方。断点按照其实现方法分为软件断点和硬件断点。软件断点是靠程序指令陷阱来实现的。硬件断点是靠嵌入式处理器或调试工具硬件来实现的。软件断点的实现方法对于不同的嵌入式处理器和不同的调试工具而言,实现方法都是一样的,都是通过修改程序指令的方法实现的。硬件断点的实现方法对于不同的嵌入式处理器和不同的调试工具而言,实现方法是不一样的。有的嵌入式处理器具有片上调试逻辑,调试工具通过JTAG、BDM、OCDS、NEXUS等接口访问控制片上调试逻辑,通过片上调试逻辑实现硬件断点。这种硬件断点的数量是有限制的。由于不同的嵌入式处理器上的调试逻辑实现方法不同,因而它们提供的硬件断点的数量是不一样的。在线调试器(ICD)就是通过访问控制片上调试逻辑实现硬件断点的。没有片上调试逻辑的嵌入式处理器不能使用在线调试器。在线仿真器(ICE)通过基于存储器的断点技术实现硬件断点。在线仿真器实现的硬件断点的数量是没有限制的。对于没有片上调试逻辑的嵌入式处理器,可以考虑用在线仿真器(ICE)进行调试。

单步是断点的一种特殊形式,它相当于在下一条指令或程序行上设置一个断点,程序启动运行到断点停下来。

触发用于捕捉所调试的应用程序在运行中出现的某一特定目标状态。这一特定的目标状态就是通常所说的触发条件。触发条件通常是处理器的特定的地址、数据、控制总线以及内部/外部信号状态的逻辑组合。当一个触发条件不足以描述要捕捉的目标状态时,开发人员通常会使用触发序列器(Sequencer)将多个触发条件级联起来。调试工具在触发发生之后,要么停止所调试的应用程序的运行,要么增加触发记数器,要么输出一个触发信号,以便通知开发人员,所要捕捉的触发条件已发生。为了便于开发人员观察触发发生之后应用程序的执行情况,调试工具通常会提供触发滞后的功能。触发滞后就是调试工具在发生触发之后仍然使应用程序结续运行一段特定的时间之后才将应用程序停下来。

不同的调试工具对触发功能的实现程度是不一样的。在线仿真器(ICE)绝大多数都可以实现完型的触发功能。在线调试器(ICD)对触发功能的实现程度取决于所调试的嵌入式处理器上的片上调试逻辑。在线调试器(ICD)与逻辑分析仪组合,可以宴现较完整的触发功能。

开发人员通常将触发功能与下面要讲到的跟踪功能一起使用,来捕捉导致应用程序中问题产生自原因。

跟踪就是记录所调试的应用程序的执行过程,以便开发人员分析导致应用程序出现问题的原因。跟踪的记录方式有先进先出方式和压栈方式。先进先出方式总是记录应用程序停下来之前的最新运行过程。在先进先出方式下,如果跟踪记录缓冲填满的话,最先跟踪的记录就要丢弃,以便填充新的记录。压找方式记录跟踪开始到跟踪记录缓冲被填满这段时间内应用程序的运行过程。在压栈方式下,如果跟踪记录缓冲填满的话,新的应用程序执行过程将不被记录。跟踪还可以有选择地记录程序的执行过程,例如,只记录函数入口和出口的执行过程。当然,要进行有选择跟踪,开发人员必须对跟踪功能进行设置。

不同的调试工具对跟踪功能的实现方式是不一样的。在线仿真器(ICE)由于其结构的特殊性,它可以捕获到嵌入式处理器的总线周期,它的跟踪记录的最小单位就是总线周期。在线仿真器(ICE)调试软件译码这些总线周期,倒推出程序的执行过程。在线调试器(ICD)因为不能捕获嵌入式处理器的总线周期,因而决大多数没有跟踪功能。有些嵌入式处理器的片上调试逻辑能够将程序的执行过程信息压缩之后通过特定的接口送到芯片外部,供外部的调试工具使用。这样,在线调试器(ICD)可以通过增加跟踪模块捕获这些信息的方法实现跟踪功能。在线调试器(ICD)调试软件从跟踪模块记录的嵌入式处理器送出来的指令流信息,还原出应用程序的执行过程。基于ARM内核的嵌入式处理器芯片上的ETM接口就是一个这样的接口。通过这种方法实现的跟踪功能的完善程度完全取决于片上调试逻辑。

由于逻辑分析仪具有超强的逻辑跟踪分析功能,因而它可以捕获记录嵌入式处理器的总线周期,也可以捕获记录来自象ETM这样的接口的程序执行信息,并对这些记录进行分析,译码或还原出应用程序的执行过程。逻辑分析仪通过触发接口与在线调试器(ICD)协调工作,补充在线调试器(ICD)在跟踪功能方面的不足,与在线调试器(ICD)一起为开发人员提供断点、触发和跟踪三种调试手段。

下面以Lauterbach公司的TRACE32-ICD和Tektronix公司的TLA700逻辑分析仪为例,介绍如何将逻辑分析仪与在线调试器组合成开发调试平台,为开发人员提供的断点、触发和跟踪功能。

首先介绍一下Lauterbach公司的TRACE32-ICD。

TRACE32-ICD是在线调试器。它采用模块化的设计,可以支持具有JTAG、BDM、0CDS、NEXUS等调试接口的嵌入式处理器。它可以为嵌入式处理器的开发人员提供断点及触发功能(利用片上调试逻辑)。TRACE32-ICD的调试器软件运行在Windows平台上。TRACE32-ICD通过并口、以太网口、USB口等形式与PC连接。TRACE32-ICD具有触发输入/输出端口,通过它TRACE32-ICD与逻辑分析仪连接。TRACE32-ICD与逻辑分析仪通过该连接相互触发,协调工作。

接下来,介绍一下Tektronix公司的TLA700逻辑分析仪。

TLA700逻辑分析仪除了具有传统的逻辑分析仪的逻辑采集和分析功能之外,是它采用了开放灵活的Windows平台架构,具有串口、并口及以太网等接口。这样一来,基于Windows平台的嵌入式开发调试软件就可以运行在TLA700上。嵌入式处理器的开发人员可以用TLA700搭建嵌入式开发调试平台。另外,TLA700的HLL源码支持功能可以直接分析采用IEEE695、OMFx86、COFF、ELF/Dwarf、ELF/Stabs和ASCII格式的可调试的应用程序。这也为它集成在线调试器,例如,TRACE32-ICD,补充在线调试器在跟踪功能方面的不足奠定了基础。 [page]
首先,将TRACE32-ICD的调试器软件安装到TLA700的Windows平台上。将TRACE32-ICD连接到TLA700的串口、并口或以太网口上。将TRACE32-ICD的触发输入/输出端口与TLA700的触发输出/输入端口连接。TRACE32-ICD的调试电缆与目标板上的JTAG、BDM、0CDS、NEXUS等接口连接,用来控制目标板上的嵌入式处理器。TLA700的逻辑探头连接到嵌入式处理器的地址、数据和控制总线上,采集嵌入式处理器的总线周期,或者连接到片上调试逻辑的指令流信息接口(例如,ETM口)上,采集嵌入式处理器执行的指令流信息。由TRACE32-ICD和TLA700组合成的嵌入式处理器高度平台与目标板的连接关系,如图1所示。

在完成了TRACE32-ICD和TLA700以及目标板之间的连接之后,开发人员就可以使用这一组合开发调试平台了。

开发人员首先启动TLA700,等TLA700启动完成之后,再来启动TRACE32-ICD调试器软件。在TRACE32-ICD和TLA700都完成了启动之后,TRACE32-ICD的调试界面和TLA700的逻辑跟踪界面就会分别显示在不同的Windows窗口中。当然,这些显示都在TLA700自带的彩色液晶屏上,或者在TLA700外挂的显示器上。

开发人员开始真正的调试工作之前,还要分别对TRACE32-ICD和TLA700进行设置。当然,这些设置是在TRACE32-ICD和TLA700各自的Windows窗口中完成的。对TRACE32-ICD的设置工作主要完成对目标板上的嵌入式处理器的设备寄存器的初试化,将准备调试的应用程序下载到目标板上的嵌入式处理器的程序存储器空间,定义触
发输入/输出端口的方向。对TLA700的设置工作包括定义逻辑通道,用HLL源码支持功能加载分析TRAC32ICD所下载的可调试格式(IEEE695、OMFx86、ELF/Dwarf、ELF/Stabs和ASCⅡ)的文件,定义触发条件。

接下来,开发人员就可以开始调试他们的应用程序了。

开发人员用TRACE32-ICD设置断点调试程序,用TLA700设置触发条件,并由TLA700完成跟踪功能。

TRACE32-ICD和TLA700如何同步工作呢?这就要借助与TRACE32-ICD和TLA700的触发输入/输出端子了。

当开发人员想要用TLA700的强大的触发功能来捕捉产生某一特殊目标状态的程序时,可以将TRACE32-ICD的触发输入/输出端子定义为输入(可以是高电平或低电平触发),然后,将TLA700所定义的触发条件对应到连接TRACE32-ICD的触发输出端子。开发人员运行程序的时候,如果目标状态出现,TLA700就会产生触发信号送给TRACE32-ICD,TRACE32-ICD在收到这个触发信号之后,它就会将开发人员所调试的应用程序停下来。由于TLA700不停地跟踪记录应用程序的执行情况,这时候,将TLA700停下来,就可以看到产生触发前后应用程序的执行情况。由于TLA有很深的记录存储,开发人员可以观察到很详尽的程序执行情况。

开发人员也可以将TRACE32-ICD的触发输入/输出端子定义为输出,将该信号连接到TLA700的一个触发输入端子,并设置TLA700根据该信号控制跟踪的启动或停止。这样就可以实现跟踪与程序运行同步,使开发人员能够跟踪到程序在调试过程中所有的运行情况。

TRACE32-ICD和TLA700给开发人员提供了灵活的触发设置功能,开发人员可以充分发挥聪明才智来设计复杂的触发条件,来捕捉应用程序中的问题。

在嵌入式系统的开发调试中,开发人员通常会遇到四类问题:逻辑问题、软/硬件相互影响问题、软件实时问题和崩溃问题。应用程序逻辑设计或编码错误或设计假设不正确都属于逻辑错误。指令引起的存储器访问出错,应用程序在运行过程中出现在数据总线上的特定数据格式引起的串扰假信号,这些都是软/硬件相互影响问题。应用程序在单步、端点的调试中都运行正常,而只有在目标系统全速运行的时候才会出问题,这类问题就属于软件实时问题。目标系统在运行中发生系统崩溃,这类问题就是崩溃问题。逻辑问题大约占开发人员遇到的所有调试问题的80%。解决这类问题,开发人员通过在应用程序中设置断点,检查寄存器、存储器、变量等的值来解决。开发人员解决逻辑问题的时间约占解决所有调试问题的总时间20%。而解决其它三类问题所用的时间要占到解决所有调试问题的总时间的80%。这三类问题只靠设置断,点的方法,往往是比较难以解决的。由于产生这三类问题的原因通常都比较复杂,所以,开发人员必须通过触发来捕捉这些问题,然后,再通过跟踪来分析产生这些问题的原因。

传统地,嵌入式系统的开发调试人员通常使用在线仿真器(ICE)来完成端点、触发和跟踪这三种调试手段。随着集成电路技术的不断发展,新一代的嵌入式处理器的工作频率越来越高,封装越来越表贴化。由于在线仿真器要通过仿真探头取代目标系统上的嵌入式处理器来和目标系统连接,所以,在线仿真器对新一代的嵌入式处理器而言,连接是一大问题。嵌入式处理器的设计生产厂商已经认识到这个问题。他们在新一代的嵌入式处理器增加了片上调试逻辑,而访问片上调试逻辑只须不到十根连接线,且时钟频率不高。在采用新一代的嵌入式处理器来开发目标系统的时候,越来越多的开发人员会选择在线调试器加逻辑分析仪形式的组合开发调试平台。
关键字:逻辑分析仪  嵌入式  开发调试 引用地址:逻辑分析仪在嵌入式开发调试中的应用

上一篇:逻辑分析仪在嵌入式开发调试中的应用
下一篇:CPLD在多功能谐波分析仪设计中的应用

推荐阅读最新更新时间:2024-03-30 22:31

视频多媒体集中控制系统实现的关键技术研究
1 引 言   随着数字技术和网络技术的迅猛发展,嵌入式系统进入了一个新的发展时期。32位高性能专用微处理器的出现,使嵌入式系统已经能够适应十分复杂的控制需求,进行多任务,尤其是嵌入式视频的处理,大大扩展了嵌入式系统的应用范畴,正成为我国教育现代化对数字化、网络化的教学设备进入全新的发展时期的强大技术支撑。32位高性能专用微处理器需要嵌入式操作系统,而μClinux操作系统是针对32位微处理器设计的嵌入式Linux操作系统。   μClinux是控制领域的嵌入式操作系统,其内核功能结构与Linux基本相同,且可移植和裁剪;用户通过重新配置、编译内核,可方便移植到多种处理器平台上。   本文主要介绍基于嵌入式视频的多媒体
[嵌入式]
ARM 入门
  1 ARM 的启动      一般的嵌入式系统在主程序执行之前都需要执行一些初始化的过程以创造嵌入式程序运行的环境,尤其是一些高级的嵌入式系统,由于核心芯片使用内存映射、内存保护等机制以及编程使用高级语言 C,C++ 甚至 JAVA 语言,都需要先创建一个适合程序运行的硬件环境,然后初始化或者配置或者剪裁 run-time library, 这些工作都必须在主程序运行前完成,所以一个 startup 程序或者程序组对于一个嵌入式系统来说是非常重要的。要编写 startup 程序,需要对编译器、链接器和汇编器的细节有一定的了解,同时对 ARM 芯片硬件本身的地址分配以及 memory mapping 机制也需要有一些了解。
[嵌入式]
嵌入式RFID设计中的组成部分及设计要领
 要点   * 虽然RFID可追溯至20世纪40年代,但由于专有产品无法互操作,并且缺乏相关标准,导致该技术无法发挥其潜力。   * 无源RFID转发器不含电源,依靠进入的射频信号在天线中感生出足以发射响应信号的小电流。   * 嵌入式RFID阅读器能询问高速运动并且距离超过30m的转发器,这取决于天线尺寸和发射功率。   * 全球标准以及政府部门和企业的指令已经扩大了RFID的使用范围,但是,隐私和安全担忧依然在妨碍全面接受。   RFID(射频识别)技术有潜力成为嵌入式系统设计中的一种常见的重要组成部分。除了在库存管理领域的传统作用以外,RFID标签和高速长距离阅读器的新进展使嵌入式系统设计者能轻松纳入多种特性,比如
[网络通信]
基于ARM9的嵌入式Web服务器Boa的软/硬件设计
1.ARM简介 广义地讲,凡是带有 微处理器 的专用软硬件系统都可以称为嵌入式系统。它是嵌入到对象体系中的专用计算机系统,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。目前非常流行的ARM内核有ARM7TDM1、S t r o n g A R M 、A R M 7 2 0 T 、A R M 9 T D M 1 、ARM920T、ARM940T、ARM946T、ARM966T、ARM10TDM1等。本文所讨论的目标板的CPU为ARM920T内核的三星S3C2410芯片。 ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机
[单片机]
基于ARM9的<font color='red'>嵌入式</font>Web服务器Boa的软/硬件设计
嵌入式操作系统任务切换方法对比分析
   引言   嵌入式系统在航天、军事、工控以及家电等方面得到了广泛应用。大量的嵌入式系统具有实时性的要求,但是由于体积、能耗、价格等方面的约束,其处理器速度往往比较慢,存储器容量也有限。而传统的实时操作系统难以简单地移植到嵌入式系统中,所以需要重新开发针对嵌入式系统特性的实时操作系统。任务调度策略是实时系统内核的关键部分,如何进行任务调度,使得各个任务能在其期限之内得以完成,是实时操作系统的重要研究领域。而不同的操作系统对任务调度的机制也有所不同,本文对目前比较流行的操作系统——VxWorks、μClinux、μC/OS-II、Windows CE的任务切换机制进行分析和比较。   1 操作系统介绍   1.1 VxWor
[嵌入式]
嵌入式脉象采集仪电路设计
脉诊作为中医最重要的一种诊断方式,具有模糊性、不确定性的特点,是近年来中医现代化研究中的热点。随着电子、计算机技术的快速进步,将嵌入式技术、 FPGA技术、IP核技术结合在一起,融合电子技术、信号处理方法等学科知识,在中医基本理论的指导下,设计脉象诊断设备,构建一个灵活高效,可扩展性强,可靠性高,功耗低,可便携的脉象采集仪具有重要的现实意义和良好的市场前景。 1 仪器总体设计 嵌入式脉象采集仪的前期设计目标是脉搏信号的采集、存储、显示、简单处理、通信等,后期要对所采集到的信号处理,得到脉象特征,对病人做出诊断。在 FPGA的选型时,不但要考虑当前功能是否够用,价格适中,而且要考虑产品的升级换代,所以设计的系统选择Alt-e
[测试测量]
<font color='red'>嵌入式</font>脉象采集仪电路设计
DS28EL25 DeepCover嵌入式安全解决方案
DeepCover ™嵌入式安全解决方案多层次的先进的物理安全性,提供业界最安全的密钥存储的敏感数据。 DeepCover安全的认证(DS28EL25)结合了安全质询-响应认证功能的基础上的FIPS 180-3-指定的安全散列算法(SHA-256),4KB的用户可编程EEPROM。额外的安全存储器持有秘密/键SHA-256的操作。每个设备都有自己唯一的64位ROM识别号(ROM ID),在出厂时编程到芯片中。SHA-256消息认证码(MAC),,其中的DS28EL25生成,计算从用户存储器中的数据,SHA-256的秘密,一个主机控制器的随机挑战,和64位ROM ID。一个安全的和低成本的工厂编程服务进行预编程设备数据,包括SHA
[模拟电子]
DS28EL25 DeepCover<font color='red'>嵌入式</font>安全解决方案
嵌入式Linux系统中的GUI系统的研究与移植
引 言     嵌入式GUI为嵌入式系统提供了一种应用于特殊场合的人们交互接口。嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。另外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。总体来讲,嵌入式GUI具备以下特点:     *体积小;     *运行时耗用系统资源小;     *上层接口与硬件无关,高度可移植;     *高可靠性;     *在某些应用场合应具备实时性。 1 基于嵌入式Linux的GUI系统底层实现基础     一个能够移植到多种硬件平台上的嵌入式GUI系统,应用至少抽象出
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved