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

2012-11-05 14:24:14来源: 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,补充在线调试器在跟踪功能方面的不足奠定了基础。
[1] [2]

关键字:逻辑分析仪  嵌入式  开发调试

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/1105/article_6247.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
逻辑分析仪
嵌入式
开发调试

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved