基于ARM开发的JTAG仿真器的调试设计

发布者:温暖拥抱最新更新时间:2011-06-02 关键字:ARM开发  JTAG仿真器 手机看文章 扫描二维码
随时随地手机看文章

    基于JTAG仿真器的调试是目前ARM开发中采用最多的一种方式。大多数ARM设计采用了片上JTAG接口,并将其作为测试、调试方法的重要组成。

    JTAG仿真器通过ARM芯片的JTAG边界扫描口与ARM CPU核通信,实现了完全非插入式调试,不使用片上资源,不需要目标存储器,不占用目标系统的任何端口。由于JTAG调试的目标程序是在目标板上执行,使得仿真更加接近于目标硬件[1]。

    目前针对嵌入式系统开发的调试工具品种繁多,如ARM公司的AXD debugger软件与Mutil-ICE仿真器等。但是大部分嵌入式调试工具价格过高,因此设计实现一种速度快、性能稳定、价格低廉、易于实现的ARM调试工具是十分必要的。

    1 ARM JTAG调试原理
    ARM典型的调试系统结构如图1所示。调试系统包括调试主机、仿真器和调试目标。

    调试主机是一台运行调试软件(例如ADS)的计算机。调试主机可以发出高层的调试命令,例如设置断点、访问内存等[2]。
    仿真器用来将调试主机发出的高层调试命令转换为底层的ARM JTAG调试命令。因为目标机无法识别调试主机发送来的高级命令,因此就需要仿真器将调试主机发出的高层调试命令转换为底层的ARM JTAG调试命令[3]。在整个调试系统中起到重要的作用,其性能也决定了整个调试系统性能。

    2 方案设计
    本文提出了一种采用PHILIPS公司的ARM7芯片LPC2148设计,具有USB2.0通信方式、高速稳定的ARM仿真器实现方案,如图2所示。


    守护进程接收从IDE集成开发环境发送来的调试命令,将其通过USB总线转发到ARM仿真器,ARM仿真器再将调试命令转换成JTAG格式的信号并发送到I/O口,从而控制调试目标执行特定的操作,达到调试的目的。同理,从调试目标返回的数据,先经过ARM仿真器的译码,再经过守护进程返回到IDE开发环境,从而形成一个完整的调试系统。

    3 硬件电路设计
    本设计的最大特点是采用了LPC2148作为主控芯片。该芯片内部集成了ARM7TDMI-S微控制器和完全兼容USB2.0的设备控制器,支持32个物理(16个逻辑)端点;支持控制、批量、中断和同步端点;所有端点都有一个双向的DMA通道。因为芯片内部集成了USB控制器,大大降低了电路板的设计难度和开发成本。其硬件电路框图如图3所示。

    (1)本机JTAG调试电路
    为了便于调试和烧写程序,将芯片LPC2148的JTAG接口接到一个20引脚的标准JTAG插口。本设计中使用引脚P0.8、P0.9、P0.10、P0.12、P0.14作为外部JTAG接口,尽量不用有其他接口功能的引脚,如P0.11、P0.14接口与I2C接口SCL1、SDA1功能复用,以便于将来的硬件升级。为了增强带负载能力,使用一片74HC244芯片,同时为了尽量兼容大部分ARM开发板上的不同JTAG插口,本设计提供了一个20引脚的JTAG插口和一个14引脚的JTAG插口。

    (2)USB电路(包括供电电路)
    USB接口电路如图4所示。为了使LPC2148的软件可以更灵活地控制USB设备与主机之间的连接,本接口电路使用P0.31(只能使用该引脚)来实现SoftConnect特性。当P0.31输出低电平时,D+线通过电阻上拉到VDD3.3,通知USB主机:USB设备与其建立连接;当P0.31输出高电平时,D+线断开与VDD3.3的连接,通知USB主机:USB设备已经断开与USB主机的连接。

    Q1选用的是P沟道MOS管,而不选用普通的PNP三极管,因为MOS管是电压驱动型,驱动电流几乎为0;而普通的PNP三极管是电流驱动,需要一定的驱动电流。导通时,P0.31_P17有可能被拉低,LPC2148要求该引脚在复位引脚为低电平期间不能被拉低,否则JTAG口将被禁止,因此必须选用P沟道的MOS管。LPC2148的P0.23引脚为USB设备控制器,用于检测USB总线是否插入检测引脚[4]。
    4 仿真器固件程序设计
    仿真器LPC2148芯片中的固件程序实现的功能包括:通过USB与上位机软件进行通信,并将上位机发送过来的、经过封装的USB数据流转换为JTAG信号,并最终送到相应的引脚或者将相应引脚的数据经过封装后,通过USB传送到PC机中。图5为应用程序的流程图。

[page]

    主函数首先将作为JTAG接口使用的5个引脚设置成相应属性,并完成USB设备初始化,配置中断向量、开中断,然后进入无限循环函数。
    无限循环函数首先处理USB事件,如USB控制传输、USB总线复位等。然后判断标志位是否收到数据,如果未收到则继续执行无限循环;如果收到了数据,则将数据从端点缓冲区读出,再交给数据处理函数处理。数据处理函数按照上位机程序对数据封装方式进行解析,根据解析的命令(读取TDI、写TMS或TDO等),通过分支处理跳到相应的处理函数。在这个过程中如果上位机要读取调试目标数据,可将相应的值按同样格式进行封装,然后通过USB发送到上位机。数据封装格式如图6所示。

C语言定义的命令码如下:
#define UNKOWN_COMMAND 0x00//未知指令
#define PORT_DIRECTION 0x01   //设置端口方向为输入或输出
#define PORT_SET 0x02  //将JTAG端口的引脚都设为高电平
#define PORT_GET 0x03 //读JTAG端口的引脚数据
#define PORT_SETBIT  0x04  //设置JTAG端口的某一位为1,由DATA[0]中数据决定设置的具体位数
#define PORT_GETBIT  0x05//读取JTAG端口的某一位为1,由DATA[0]中数据决定读取的具体位数
#define WRITE_TDI 0x06//写TDI信号命令
#define READ_TDO 0x07   //读TDO信号命令
#define WRITE_AND_READ 0x08//读写指令,对TDI写一位,对TDO一位
#define WRITE_TMS 0x09  //写TMS信号命令
#define WRITE_TMS_CHAIN 0x0A  //写TMS扫描链命令
本仿真器经实际测试下载速度稳定在30 KB/s左右,具有单步、全速、设置断点(两个硬断点和无数软断点)等功能。本文提出了一种具有硬件电路设计简单、价格低廉、调试速度快的ARM仿真器设计方案,是取代传统并口方式ARM仿真器的一种确实可行的方案。
参考文献
[1] 田泽.嵌入式系统开发与应用[M].北京:北京航空航天大学出版社,2004.
[2] 邓春梅.嵌入式系统软件仿真技术的研究与实现[D].成都:电子科技大学,2004.
[3] 杨晶箐.USB接口的边界扫描测试控制器的设计与实现[D].成都:成都电子科技大学,2006.
[4] 周立功,张华.深入浅出ARM7-LPC213x/214x[M].北京:北京航空航天大学出版社,2005.

 

关键字:ARM开发  JTAG仿真器 引用地址:基于ARM开发的JTAG仿真器的调试设计

上一篇:基于ARM7嵌入式系统的电梯群控系统的设计
下一篇:ARM设计的FPGA可重构配置方法的实现及应用

推荐阅读最新更新时间:2024-03-16 12:36

ARM针对低风险嵌入式系统软件开发推出RealView开发工具套件3.1
新版本有助于基于ARM全线处理器的开发者极大改进性能和易用性   中国上海,2007年4月2日 ——日前在美国加利福尼亚州圣何塞硅谷举行的嵌入式系统大会上,ARM公司(伦敦证交所:ARM;纳斯达克:ARMHY)推出RealView开发工具套件3.1,再次彰显为基于ARM全线处理器产品的嵌入式系统软件开发提供业界一流集成工具的承诺。      RealView开发工具套件3.1可改进性能以及对ARM处理器的支持,尤其值得注意的是,它能够更好地优化整个Cortex处理器系列,包括最新推出的首个专为FPGA的部署而开发的Cortex-M1处理器。      RealView开发工具套件3.1是首个支持最新Cortex-M1处理器的工
[新品]
基于ARM的嵌入式系统程序开发要点
因为嵌入式应用领域的多样性,每一个系统都具有各自的特点。在进行系统程序设计的时候,一定要进行具体分析,充分利用这些特点,扬长避短。 结合 ARM 架构本身的一些特点,在这里讨论几个常见的要点。 1.ARM 还是 Thumb? 在讨论 ARM 还是 Thumb 之前,先说明 ARM 内核型号和 ARM 结构体系之间的区别和联系。 如图-1所示,ARM 的结构体系主要从版本 4 开始,发展到了现在的版本 6,结构体系的变化,对程序员而言最直接的影响就是指令集的变化。结构体系的演变意味着指令集的不断扩展,值得庆幸的是 ARM 结构体系的发展一直保持了向上兼容,不会造成老版本程序在新结构体系上的不兼容。 图-1 ARM
[单片机]
基于<font color='red'>ARM</font>的嵌入式系统程序<font color='red'>开发</font>要点
ARM称正与微软合作开发64位版Windows RT
    北京时间11月2日上午消息,ARM今天宣布,该公司正在与微软合作,使64位Windows作业系统可以在ARM处理器上运行。 ARM项目经理伊恩·福赛斯(Ian Forsyth)未透露基于ARM处理器的64位版Windows作业系统具体发布时间,但表示一直在与软件商合作,以获得相关技术支持。 ARM处理器市场营销部门负责人南丹·纳亚帕利(Nandan Nayampally)在一封邮件声明中表示,ARM在与微软及所有业链公司合作,向他们提供有关新一代技术的信息并获得他们的支持。 微软发言人拒就64位版Windows RT具体细节置评,表示目前没有任何信息发布。 上周微软发布了Surface平板电脑,运行32位架构的Window
[手机便携]
ARM9开发板Qt环境的搭建
注意:不要使用自带或使用apt-get 安装的 QT,如有,则删除。开发板须能挂载NFS。本文采用了别人的教材,只是自己稍加上修改,因为刚开始找文件做的时候发现很多容易出错的,这里都加以说明了 所需原文件: a. arm-linux-gcc-3.4.1.tar.bz2 b. Qt-4.6.3-arm.tar.bz2 c. Qt-4.6.3-x86.tar.bz2 d. Qt-4.7.0.tar.bz2 e. Qt-sdk-linux-x86-opensource_2010.02.bin f. tslib-1.4.tar.gz 操作步骤: 1、检查电脑上有没有g++ : g++ --version, 如果没有
[单片机]
<font color='red'>ARM</font>9<font color='red'>开发</font>板Qt环境的搭建
Tensilica获ByteTools JTAG仿真器支持
―― ByteTools 的低成本Catapult Probe支持Tensilica 的处理器 美国加州Santa Clara 2007年4月23 日讯: ByteTools和Tensilica 公司今天共同宣布,Tensilica Diamond标准内核和Xtensa可配置处理器内核的所有客户可以开始获得ByteTools公司为Tensilica设计的低成本Catapult JTAG probe。用户不需要安装任何额外的软件,只需采用Tensilica 提供的软件开发工具,既可使用Catapult Probe。Catapult Probe 的接口是标准的XOCD 14针的JTAG 接口:Catapult EJ-1提供一个以太
[焦点新闻]
MDK-ARM(Keil uVision V4.72)上STM32开发环境配置
以前我都是在Eclipse上面和arm-none-eabi交叉编译环境来开发STM32应用程序的。 现在改用MDK-ARM比较专业的工具搭建一个开发环境。 新建一个指定STM32微控制器型号的工程: 为了生成编译文件,勾选如下复选框: 配置编译项: STM32F4XX, USE_STDPERIPH_DRIVER 添加库编译符号,和语言/代码生成级别 其中最关键的头文件包含目录: 首先要添加包含工程目录,因为固件库会查找 stm32f4xx_conf.h 配置头文件,中断服务例程实现文件可能也会调用main.h中的函数。 再添加包含 xxxySTM32F4_LibLibrariesCMSISIn
[单片机]
MDK-<font color='red'>ARM</font>(Keil uVision V4.72)上STM32<font color='red'>开发</font>环境配置
谷歌 Pixel Watch 细节解密:与 NXP 开发 Arm M33 协处理器
IT之家 5 月 25 日消息,谷歌在其 I / O 大会上公布了一款全新的智能手表 ——Pixel Watch,圆润而又精致的外观引起很多人的喜爱。但很可惜,谷歌没有透露 Pixel Watch 的具体规格,预计谷歌将会在 10 月份举行新品上市发布会。 但现在关于 Pixel Watch 的细节爆料也逐渐增多,例如 RAM、设备协处理器等等,让我们对这款设备有了更好的了解。 现在,@Max Winebach 确认了更多有关细节,其协处理器被命名为Arm M33,功耗极低(以微瓦为单位)。此外,这款手表将搭载三星 Exynos 9110 处理器,配备 1.5 GB 的 RAM 和 32 GB 的 ROM 存储,带来流畅的
[手机便携]
谷歌 Pixel Watch 细节解密:与 NXP <font color='red'>开发</font> <font color='red'>Arm</font> M33 协处理器
ARM授权杭州国芯 开发新一代机顶盒芯片设计
杭州国芯科技有限公司(杭州国芯)和ARM公司共同宣布:杭州国芯已经通过授权获得ARM926EJ-S处理器,将用于其为家庭娱乐和多媒体应用设计的下一代数字电视和机顶盒芯片。 杭州国芯总部位于中国杭州,是快速成长的中国数字电视和机顶盒市场芯片供应商。这一授权协议将帮助杭州国芯为快速增长的、包括高清电视(HDTV)、数字电视和机顶盒子在内的数字电视和消费电子应用推出一系列基于ARM的解决方案。 这一与杭州国芯的协议进一步增加了积极参与家庭市场的、基于ARM处理器的芯片供应商的数量,同时也再次体现了ARM对中国本地芯片供应商的承诺。
[家用电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved