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

嵌入式开发调试中,开发人员的调试手段包括断点、触发和跟踪三种。随着集成电路技术的发展,新一代的嵌入式处理器集成度和工作频率越来越高,芯片封装形式也越来越趋向表贴化。在线调试器(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,补充在线调试器在跟踪功能方面的不足奠定了基础。

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




德国Lauterbach公司的TRACE32 开发系统jianli8 发表于 2006-3-8 16:13:00德国Lauterbach公司的TRACE32 开发系统

由德国Lauterbach 公司研制的TRACE32系列产品开发系统具极高的技术指标,采用精良的制造工艺和独特的结构,为全球电子开发工程师提供了得心应手的开发工具。该公司成立于1979年,具有300多人年微处理器与微控制器经验,他们设计生产的产品具有高度的可靠性。TRACE32作为一种真正集成化、通用性系统仿真器可以组合成多种方案,可以支持网络方案,实验室单机方案,异地光纤方案。

TRACE32的优越性:无论您是选用网络,单机,光纤方案Trace32作为一种通用、模块化的仿真与测试都有有很强的优越性。

1、 模块化设计:

具备升级功能,可仿真的CPU达到300种以上,以更换模块来达到仿真不同目标,而且可以配套各种分析模块,做到软件及硬件上的分析,为住址实验室的持续作用起到重复投资少的功效。

2、 软件支持接口丰富:

一般的仿真器支持语言无非是Assembler, C, C++, PL/M, 而TRACE32 除支持这些以外,还支持PASCAL, MODULA2,ADA(军用语言),支持60家的COMPILER(编译器),几乎包括了欧、美等通用COMPILER厂商,支持20种以上的RTOS(实时多任务操作系统),支持以下十几种操作平台。因此它具有无可比拟的通用性。

3、 设计思路:

因为TRACE32设计起点高,它在最初设计时即面向高速微处理器与多处理器系统,采用480高总线,容易扩展。在仿真器厂商中首先采用双端口存储器高度,以求做到软件性能上的分析。

4、 技术性能:

采用了很多领先技术

,双端口存储技术,实时多任务处理机制,以太网,光纤通信技术,多CPU调试技术,软件代码覆盖分析技术,基于断点系统的存储技术,多级触发(trigger)单元技术,时钟处理单元技术,动态存储技术。

5、 可靠性:

触发器延时循环触发可从100ns到300天,连续工作可达300天。触发存储可记录90天轨迹,实时追踪可记录30天轨迹,硬件保修三年,是这种电子仪器设备保修三年的全球唯一。

6、 发展的延续性:

LauterBach 公司(Trace32 )每年以30%-50%的幅度增长。1997年的销售额达到300 Milion DM (德国马克)。每个用户都愿意与有发展的公司合作,象LauterBach以每年30%-50%的增长的发展公司,谁还不愿意与他合作。

7、 技术支持:

在全球调设有25个办事处和代理商,常年在德国、美国举办技术培训。在中国,旋极公司作为LauterBach的唯一代理商,负责全中国的TRACE32技术培训,旋极公司也经常委派工程师到德国进行培训与设计支持。

以下为三种典型产品的部分特点:

TRACE32-ICD仿真器 高性能 通用型 JTAG/BDM
■ 高性能, 通用性强,JTAG/BDM口,支持68K 、 MPC5xx/6xx/7xx/8xx 、
■ MPC82xx 、 ARM7 、 MIPS 、 DSP56K 、 TriCore 、 MCore等数十种CPU;
■ 通过并口(50KBS)、ISA口(100KBS)、以太网(400KBS)与PC和工作站连接;
■ 支持SDS/CAD-UL/GreenHill/Hiware/IAR/Keil/MetaWare等数十种Compilers;
■ 支持Nucleus PLUS/OSE/VxWorks等常见的商用RTOS.
■ 旋极公司为您提供嵌入式系统集成、咨询、底层平台搭建以及完善的技术
服务.产品涵盖开发工具和环境、DSP应用和软件测试。

TRACE32-ICE新概念通用仿真器

全模块化64位综合型仿真器TRACE32-ICE采用积木式 结构, 可支持300多种CPU及MCU,除提供很大的开 发功能以外, 还能够进行软件、端口分析、波形分析以及软件测试等。

TRACE32-FIRE新概念通用仿真器

经过对传统仿真器重新定义,TRACE32-FIRE可支持总线频率高于 100MHz的高速RISC处理器,专用于RISC、DSP、综合控制器等芯片 的开发应用,保留传统仿真器TRACE32的全部功能。

典型用户范例:

TRACE32在全球的用户在70,000以上(97年统计值)很多著名的厂商都是它的总用户,3M、NASA、AT&T、BOSCH、COMPAQ、ERICSSON、HP、IBM、MBB、MOTOROLA、PHILIPS、SIEMENS、JB、SONY等。旋极公司成功地为航天工业总公司204软件评测中心/二院二部/502所/501所/618所,771所,中科院空间中心,邮电数据所,仪表所,贝尔实验室,电力部南端,南自,中船总722所,沈阳自动所、长春光机所光学工程中心、信息产业部41所/54所、深圳中兴通讯设备有限公司等单位进行培训与技术支持,并在最近铁道部株洲电力机车研究所的实行发展项

目中一举中标。另外,我国载人航天工程,即“921”项目,经招标最终确定TRACE32为飞船及地面设备的嵌入式系统开发工具。总之,TRACE32将成为您在嵌入系统开发的首选工具!

相关文档
最新文档