几种JTAG_天堂鸟_百度空间

文章来源:

由于一些原因需要用到JTAG,但还没做过向ARM烧过板级的代码,所以对JTAG的了解很少。原本以为JTAG就是一种电平转换,至于协议是由软件实现的,硬件都是一样的,实际并不是这样的,下面是网上找到的关于几种JTAG仿真器的描述:


1.wiggler,std-jtag,用户自定义的jtag

这几个属于同一性质,此类器件仅做简单的PC并口到JTAG接口的电平转换,同时起到保护作用。它们的区别仅在于JTAG信号PIN和PC并口PIN的对应关系不同。

这些也就是我们常说的简易调试器,其主要用途是:

我们上面说了,wiggler只是起了一个电平转换的作用,具体的jtag逻辑则是由pc机上的软件实现的,这个软件就是调试代理。为什么要用调试代理呢?这是因为JTAG是串行接口,使用并口的简单JTAG电缆,利用的是并口的输出带锁存的特点,使用软件通过I/O产生JTAG时序。所以有了调试器的硬件,还要加上调试代理软件,作为中介,将调试器前端软件(比如AXD)的调试信息与目标板上的目标芯片交互,才能最终完成仿真的任务。由于jtag逻辑由软件实现,所以这就决定了其下载速度很慢,因为由由JTAG标准决定,通过 JTAG写/读一个字节要一系列的操作,使用简单JTAG电缆,利用并口,通过JTAG输出一个字节到目标板平均需要43个打印口 I/O, 普通的p4机器每秒大约可进行660K次 I/O 操作,所以下载速度大约在660K/43, 约等于15K Byte/s。

既然是由软件实现,所以调试代理软件是非常重要了,可以免费使用的简易ARM仿真器的代理软件很多,差别也比较大,主要表现在易用程度,目标器件支持,调试速度等方面。H-JTAG 作为近来新推出的简易ARM 仿真器调试代理,其支持器件比较多,支持的调试器前端软件也比较多,特别是支持keil,其调试速度也很有优势。具体的使用方法到其官方网站可以找到http://www.hjtag.com/

在理论上,通过JTAG可以访问CPU总线上的所有设备,所以应该可以写FLASH,但是FLASH写入方式和RAM大不相同,需要特殊的命令,而且不同的 FLASH擦除,编程命令不同,而且块的大小,数量也不同,很难提供这一项功能。所以一般调试软件像AXD等不提供写Flash功能,或者仅支持少量几种 Flash。比如我们使用AXD调试程序,则目标程序一般只能下载到ram里,其地址由ro base来指定。要把程序烧写到flash中,还需要想其他办法。

烧写flash的软件也有很多,像FlashPGM,H-flash等,这里还是推荐H-flash,和H-jtag配合使用。

IAR直接支持wiggler,并可以通过它编程flash。iar进行flash编程是通过其自带的flashloader实现的。所以对于内置flash的mcu,像str912使用iar+wiggler+h-jtag的组合即经济又实惠。

2. multi-ICE

这个是由arm推出的官方仿真器,正版价格不菲,不过现在盗版满天飞,兼容产品很多,价格和性能也相差很多。

与 wiggler一样,通过并口与计算机相连(现在也有usb的版本),由于其内部有颗FPGA做并口到JTAG的协议转换, 速度要比前两者都要快很多,下载速度可在120kByte/s左右。Multi-ICE的系统构架是由硬件实现PC并口到JTAG协议的转换(JTAG Bus Master控制器),而在PC机上用Multi-ICE.exe服务软件及并口驱动实现JTAG TAP多路访问、控制接口及不同ARM核的支持,用Multi-ICE.dll或Multi-ICE-gdb.exe来支持RDI(ADS或SDT等)或 GDB(gdb或xgdb等)接口的调试器与Multi-ICE.exe之间的TAPop接口的操作。在如此的架构下,使得ARM公司可以在不提供 Multi-ICE硬件升级的前提下,能通过更新Multi-ICE.exe及Multi-ICE.dll等软件来实现支持{zx1}的ARM核。

综合来说其优点是由于是arm官方推出的仿真器,所以几乎所有的ide均支持,而且目前兼容产品较多,价钱也不是很贵。

缺点是缺乏flash编程功能,速度一般(相对与我们后面说的jlink)

3.ulink

由keil公司推出,由于keil已被arm收购,也算是arm自家的东西了。

其优点是:Ulink使用usb口,方便了没有并口的笔记本用户,现在ulink的d版也是满天飞,价格也到了萝卜价。调试时,配合keil的外设窗口,非常直观, 对于从keil c51转过来的用户来说是再熟悉不过了。而且其支持flash编程。

缺点是:只能在keil下使用,速度一般。

网上可以找到ulink的原理图以及固件,可以自己制作。

由于手头上没有ulink及multi-ice,没有实际测试,只是从网上找了一些资料。

4.jlink

这是由segger公司开发一款仿真器,可以说是目前功能最强大的了。支持全系列的arm7和arm9。

支持rdi接口,支持所有的IDE,比如常用的ADS,IAR,KEIL,GDB,支持调试时下载到flash,有单独的flash编程软件,可以编程外部flash器件。

采用usb接口,下载速度飞快。

由于我手上的jlink是iar的oem产品,所以功能上做了一些限制,只能在iar下使用,而且下载速度也限制了。需要注意的是iar默认是使用 flash loader下载flash的,所以可能你在使用时没感觉到速度上的优势,在下图中把flasher loader选项去掉就可以了。

目前市面上已经有盗版的jlink了,中国人的盗版能力还是很强的,但是牵扯到利益问题,具体方法还没有公开,等盗版奸商赚够了只够估计jlink的命运就会想ulink一样了。现在只知道其内部是通过一颗AT91SAM7S芯片来实现相关功能的。


郑重声明:资讯 【几种JTAG_天堂鸟_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——