用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

32位ARM嵌入式处理器的调试技术

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:57:40
【本文由PB创新网为您整理】
摘要:针对32位ARM处理器开发过程中调试技术的研究,分析了目前比较流行的基于JTAG的实时调试技术,介绍了正在发展的嵌入式调试标准,并展望期趋势。

    关键词:嵌入式 调试 处理器 JTAG Nexus ARM

随着对高处理能力、实时多任务、网络通信、超低功耗需求的增长,传统8位机已远远满足不了新产品的要求,高端嵌入式处理器已经进入了国内开发人员的视野,并在国内得到了普遍的重视和应用。ARM内核系列处理器是由英国ARM公司开发授权给其他芯片生产商进行生产的系统级芯片。目前在嵌入式32位处理器市场中已经达到70%的份额。笔者在对三星公司的ARM7芯片技术调试的过程中,对这些高端嵌入式系统的调试技术进行了总结。

传统的调试工具及方法存在过分依赖芯片引脚、不能在处理器高速运行下正常工作、占用系统资源且不能实时跟踪和硬件断点、价格过于昂贵等弊端。目前嵌入式高端处理器的使用渐趋普及。这些处理器常常运行在100MHz,并且一些内部控制以及内部存储器的总线信号并不体现在外部引脚上。这种片上系统(System on Chip)、深度嵌入、软件复杂的发展趋势给传统的调试工具带来了极大的挑战,也给嵌入式处理器开发工程师的工作带来了不便,这就需要更先进的调试技术和工具进行配套。本文将详细介绍在ARM处理器中采用的几种片上调试技术(on-chip debugger)。这些片上调试技术通过在芯片的硬件逻辑中加入调试模块,从而能够降低成本,实现传统的在线仿真器和逻辑分析仪器的功能,并在一定的条件下实现实时跟踪和分析,进行软件代码的优化。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 边界扫描技术(JTAG)

边界扫描技术是为了满足当今深度嵌入式系统调试的需要而被IEEE1149.1标准所采纳,全称是标准测试访问接口与边界扫描结构(Standard Test Access Portand Boundary Scan Architecture)。JTAG遵循1149.1标准,是面向用户的测试接口,是ARM处理器调试的基础。本文提到的ARM的E-TRACE调试模式实际上是JTAG的增强版本,其它一些32位嵌入式处理器的调试方式也基本上遵循这个标准。这个用户接口一般由4个引脚组成:测试数据输入(TDI)、测试数据输出(TDO)、测试时钟(TCK)、测试模式选择引脚(TMS),有的还加了一个异步测试复位引脚(TRST)。其体系结构如图1。

所谓边界扫描就是将芯片内部内科所有的引脚通过边界扫描单元(BSC)串接起来,从JTAG的TDI引入,TDO引出。芯片内的边界扫描链由许多的BSC组成,通过这些扫描单元,可以实现许多在线仿真器的功能。根据1149.1的规定,芯片内的片上调试逻辑通常包括一个测试访问接口控制器(TAP)。它是一个16状态的有限状态机以及测试指令寄存器、数据寄存器、旁路寄存器和芯片标识寄存器等。在正常模式下,这些测试单元(BSC)是不可见的。一旦进入调试状态,调试指令和数据从TDI进入,沿着测试链通过测试单元送到芯片的各个引脚和测试寄存器中,通过不同的测试指令来完成不同的测试功能。包括用于测试外部电气连接和外围芯片功能的外部模式以及用于芯片内部功能测试(对芯片生产商)的内部模式,还可以访问和修改CPU寄存器和存储器,设置软件断点,单步执行,下载程序等。其优点如下:

·可以通过边界扫描操作测试整个板的电气连接,特点为表面贴元件提供方便;

·各个引脚信号的采样,并可强制引脚输出用以测试外围芯片;

·可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径;

·可以进行多内核和多处理器的板级和芯片级的调试,通过串接(如图2),为芯片制造商提供芯片生产、测试的途径。

虽然JTAG调试不占用系统资源,能够调试没有外部总线的芯片,代价也非常小;但是由于JTAG是通过串口依次传递数据,速度比较慢,只能进行软件断点级别的调试,自身还不能完成实时跟踪和多种事件触发等复杂调试功能。因此便有了几种功能更为完善的增强版本。

2 ARM芯片的实时调试方案(E-TRACE)

ARM公司的内核芯片采用E-TRACE片上调试模式。它实际上是JTAG的升级版本,通过增强的辅助片上调试硬件来完成实时调试,解决了许多传统调试器难以解决的问题。

图2 对多内核和多处理器的调试

它的实时调试方案通过三种途径解决:

·EmbeddedICE硬逻辑;

·实时监控;

·实时跟踪。

EmbeddedICE逻辑单元存在于ARM7TDMI、ARM9TDMI、ARM9E和ARM10内核中。它枯JTAG口的基础上,增加了硬件断点寄存器、比较器,通过断点寄存器的值可以进行硬件断点的设置,不仅对地址还可以对数据、控制总线的信号进行复杂的触发控制设定,而不是单单在指令级别进行中断(如软中断),从而满足对特定事件的中断响应,极大的增加了灵活性,同时可以在ROM中设置断点和观察点,极大地方便调试。其示意如图3。

实时监控则是进一步在ARM9E和ARM10中的改进。它改变EmbeddedICE在触发中断后时入调试模式状态而停止内核运行的弊端,进入一段非常小的中断监控程序中,得到所需要的信息后迅速把控制权转让给先前的任务(这是与远程监控器最大的区别)。在监控程序内处理器完全可以再接收外界的中断和其他触事件,而不是停止运行。这种方

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:16,015.63000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号