您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

32位ARM嵌入式处理惩罚器的调试技能

发布日期:2011-04-17

     择要:针对32位ARM处理惩罚器开辟进程中调试技能的研究,阐发了如今比较盛行的基于JTAG的及时调试技能,先容了正在生长的嵌入式调试标准,并预测期趋势。

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

随着对高处理惩罚本领、及时多任务、网络通讯、超低功耗需求的增长,传统8位机已远远餍足不了新产品的请求,高端嵌入式处理惩罚器已经进入了海内开辟职员的视野,并在海内得到了广泛的器重和应用。ARM内核系列处理惩罚器是由英国ARM公司开辟授权给其他芯片生产商举行生产的体系级芯片。如今在嵌入式32位处理惩罚器市场中已经到达70%的份额。笔者在对三星公司的ARM7芯片技能调试的进程中,对这些高端嵌入式体系的调试技能举行了总结。

传统的调试东西及要领存在太过依赖芯片引脚、不克不及在处理惩罚器高速运行下正常事变、占用体系资源且不克不及及时跟踪和硬件断点、代价过于昂贵等弊端。如今嵌入式高端处理惩罚器的利用渐趋遍及。这些处理惩罚器通常运行在100MHz,并且一些内部控制以及内部存储器的总线信号并不表如今外部引脚上。这种片上体系(System on Chip)、深度嵌入、软件巨大的生长趋势给传统的调试东西带来了极大的挑衅,也给嵌入式处理惩罚器开辟工程师的事变带来了不便,这就必要更先辈的调试技能和东西举行配套。本文将细致先容在ARM处理惩罚器中采取的几种片上调试技能(on-chip debugger)。这些片上调试技能通过在芯片的硬件逻辑中参加调试模块,从而可以或许低落本钱,实现传统的在线仿真器和逻辑阐发仪器的成果,并在肯定的条件下实现及时跟踪和阐发,举行软件代码的优化。

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公司 href="http://www.arm.com/chinese/">ARM公司的内核芯片采取E-TRACE片上调试模式。它实际上是JTAG的升级版本,通过加强的帮助片上调试硬件来完成及时调试,办理了很多传统调试器难以办理的题目。

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

它的及时调试方案通过三种途径办理:

·EmbeddedICE硬逻辑;

·及时监控;

·及时跟踪。

EmbeddedICE逻辑单位存在于ARM7TDMI、ARM9TDMI、ARM9E和ARM10内核中。它枯JTAG口的底子上,增长了硬件断点寄存器、比较器,通过断点寄存器的值可以举行硬件断点的设置,不但对地点还可以对数据、控制总线的信号举行巨大的触发控制设置,而不是单单在指令级别举行停止(如软停止),从而餍足对特定变乱的停止相应,极大的增长了机动性,同时可以在ROM中设置断点和观察点,极大地方便调试。其表示如图3。

及时监控则是进一步在ARM9E和ARM10中的改造。它变化EmbeddedICE在触发停止后时入调试模式状态而克制内核运行的弊端,进入一段非常小的停止监控步伐中,得到所必要的信息后敏捷把控制权转让给先前的任务(这是与长途监控器最大的区别)。在监控步伐内处理惩罚器完全可以再吸取外界的停止和其他触变乱,而不是克制运行。这种方法综合了JTAG和长途调试的好处,它可以增长以下两个长处:

·在不克制停止的条件下调试远景任务(即停止时正在运行的任务);

·不消克制处理惩罚器的运行就可以读写和修改存储器(对付机电配置非常紧张)。

更为强大的是ARM的及时跟踪办理方案,它由三部分构成:

·嵌入跟踪微核;

·跟踪阐发仪;

·跟踪调试软件。

    通过这三种东西可实现完全的及时跟踪。跟踪微核存在于芯片,它可以不绝止CPU的运行而及时监督芯片总线的信息,并把设置触发范畴内的全部信息在CPU运行的同时通过压缩的方法送到外部的跟踪阐发仪器里。阐发跟踪仪器从芯片外部通过跟踪口(别的一个差别于JTAG的接口)收取信息。由于是压缩的数据,以是阐发仪不必要采取与跟踪微核及时跟踪雷同的速率。这大大低落了阐发的本钱,并增长了存储的容量。而PC真个跟踪软件则来自阐发仪的数据重新构造起来,从而重现处理惩罚器的汗青状态和数据、步伐流程。同时还可以把实行代码与源代码链接起来,使调试者快速明白跟踪数据。ARM的这种方法通过芯片内部的及时跟踪硬件加上低本钱的阐发仪器,办理了传统在线仿真器(ICE)和逻辑阐发仪的诸多弊端。其表示如图4。

3 Nexus标准

自从JTAG IEEE1149.1标准出来后,越来越多的高端嵌入芯片生产商开始采取这个标准。但是1149.1标准只能提供一种静态的调试要领,如处理惩罚器的启动和克制、软件断点、单步实行、修改寄存器,而不克不及提供处理惩罚器及时运行时的信息。于是各个厂家在本身的芯片上,把原有的JTAG的根本成果举行了加强和扩展,如前面提到的E-TRACE、背景调试模式BDM(Background Debugging Mode)和片上仿真OnCE(On-Chip Emulation)等,在处理惩罚器不绝止运行的条件下,举行及时的调试。

由于这些加强的JTAG版本之间各有差别,并且纵然同一厂家的差别产品之间也在存着差别。以是一些芯片厂商和调试东西开辟公司于1998年创建了Nexus 5001论坛,以期提出一个在JTAG之上的嵌入式处理惩罚器调理的同一标准。

Nexus将调试开辟分成四级,从第一级开始,每级的巨大度都在增长,并且上级成果包围下一级。第一级利用JTAG的大略静态调试;第二级支持编程跟踪和及时多任务的跟踪,并欢用户用I/O引脚作为多路复用帮助调试口;第三级包括处理惩罚器运行时的数据写入跟踪和存储器的读写跟踪;第四级增长了存储更换并触发巨大的硬件断点。从第二级开始,Nexus规定了可变的帮助口。帮助口利用3~16个数据引脚,用来资助其他仿真器和阐发仪之类的帮助调试东西。其表示如图5。

通过Nexus标准可以解以下题目:

·调试内部总线没有引出的处理惩罚器,如含有片内内存器的芯片;

·传统在线仿真器无法实现的高速调试;

·深度流水线和有片上Cache的芯片,可以或许探测详细哪条指令被取和终极实行;

·可以稳固地举行多内核处理惩罚器的调试。

4 调试技能的预测

通过上面的阐发可以看出,如今的调试技能可以在频率100MHz、内部总线外部不可见、必要举行及时跟踪的环境下分发挥上风,补充传统的长途调试器和在线仿真器的不敷,并且本钱非常低廉。

同时,调试技能还在不绝地生长,如今IEEE1149.4标准也已经孕育产生。它重要是将边界扫描布局用于处理惩罚模数殽杂芯片的调试。Nexus也已经完成了标准的订定并有厂商开始在芯片上提供Nexus的调试硬件模块。但是这些标准到底会不会被各个芯片厂商所采取,另有等机遇的成熟。分外是两大主流内核公司ARM和MIPS分别采取自已独特内核调试技能。ARM采取基于JTAG版本的E-Trace,而MIPS则是用EJTAG——加强的JTAG技能。它们对Nexus的态度也是观看等待。