这些本质都是ARM系列仿真调试器
开始之前,先来了解一下什么事JTAG
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:
TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;
TCK:测试时钟输入;
TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;
TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出;
JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。那么能不能让JTAG支持USB协议,用USB接口来调试ARM呢?这就要说到JLINK和ULINK了。
JTAG深入戳这里。
1、 J-Link
J-Link是最著名的ARM开发调试工具,J-Link由SEGGER公司生产。提供对市面上几乎所有ARM内核芯片的支持。目前最新版本的J-Link产品为V8,支持JTAG和SWD模式。并且对主要的IDE环境如KEIL、IAR都有良好的支持。优点很多,因此也是首选的调试工具。
所以JLINK就是怎么个作用呢? 起到一个中间转换桥梁,芯片测试用的是JTAG,而JTAG另一端在早起是并口,而现在大多都是USB口,中间过度的重担就交给了Jlink。
2、 ST公司的ST-LINK
ST-LINK可以单独购买,也可以通过ST公司的开发板自带,Discovery系列的开发板价格最低价格不到¥100。板载的ST-LINK可以仿真ST公司的所有ARM芯片。
ST-LINK除支持ST公司的ARM MCU(M3内核的STM32F1、F2,M4内核的F4、F3以及M0内核的F0),还支持STM8系列。
ST-LINK的版本目前为ST-LINK V2。虽然资料基本公开,但既然成本不高,就没必要自制。
其实了解到这就可以了,知道Jlink支持所有ARM芯片的仿真调试,而STlink仅仅支持ST公司的相关芯片。
Keil、IAR、DS-5、ADS开发工具软件等都有一个公共的调试接口RDI,那么我们如何完成 RDI ->JTAG调试协议的转换呢?两种做法:
1、在电脑上写一个服务程序,把Keil、IAR、DS-5中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换,就像RS232那样的作用)发送你的的目标板。H-JTAG就是这样的。H-JTAG的硬件就仅是一个物理电平的转换接口,所以很简单。
而电脑中装的H-JTAG软件就是前面说到的服务程序,负责协议转换的。
2、 做一个板,用此板直接接收来自Keil、IAR、DS-5等软件的调试命令,由此板做RDI
JTAG协议的转换。然后与目标板通信,这就是JLINK、ULINK2等仿真器的工作原理。
由上可以看出,
H-JTAG由于是软件作协议转换的,所以速度较慢,但是硬件简单。
而第二种方法的JLINK一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。
目前,市场上的JTAG接口仿真器有14引脚和20引脚两种。其中,以20引脚为主流标准,但也有少数的目标板采用14引脚。经过简单的信号转换后,可以将它们通用。
其他了解:
1、 ULINK,通用的ARM JTAG工具ULINK
ULINK是ARM官方的调试工具,KEIL出品。ULINK也可以支持大多数的ARM芯片,对KEIL的支持非常好,是KEIL的默认调试工具。缺点是因为不支持IAR,影响了ULINK的推广。
ULINK官方提供电路图等资料,属於半开放的,可以自做。
2、 OpenJTAG
OpenJTAG为开源的JTAG调试工具,功能强大,并且配合其他的开源软件工具可用於在Linux对ARM芯片进行调试,因此在一些社群中使用较多。因为采用FTDI+FPGA双芯片的架构,成本相对较高。
3、 J-link ARM-OB
因为SEGGER版本众多。其中有一些定制的版本,不带J-link模式而仅支持SWD模式。J-linkARM-OB最初是SEGGER给某个厂家的特殊版本。被破解后目前可以自制,成本约¥20。
ARM-OB因为不支持JTAG模式,而仅支持SWD模式,因此有些较早的ARM7内核MCU,并且不支持SWD模式的芯片,是不能够调试的。
4、 低成本的并口JTAG
并口JTAG的电路网上很多,目前因为电脑没有了并口的关系,处於淘汰阶段。但从成本上来说是最便宜的。较流行的一种要注意20PIN的接线,其中RTCK的接法。
定制版本和厂家的调试工具
5、 TI公司的Stellaris ICDI
TI的Stellaris
ICDI用於调试Stellaris系列芯片。TI的开发板都自带的,采用FTDI2232芯片,并额外提供串口用於调试。也有少量产品使用LM3S的MCU代替FTDI2232仿真。
TI的ICDI调试工具支持LM3S系列Cortex-M3以及LM4F系列Cortex-M4内核的芯片。支持Keil、IAR以及自家的CCS调试环境。TI的LM3S811开发板原来是送的,不花钱,现在LM4F的Lanchpad通过官方论坛可以以低於¥100的价格买到。
6、 NXP公司的LPCXpresso
NXP的LPCXpresso开发板支持NXP的M0和M3系列MCU调试,板载的开发工具设计成与目标芯片分离,因此可用来对NXP的CORTEX-M0和M3调试。
目前LPCXpresso板载的调试目前必须与特定的LPCXpresso
IDE软件配合,而不能配合使用KEIL和IAR。但因为是基与Eclipse开源项目,所以可以支持Linux环境。
与LPCXpresso相仿的国内的英蓓特和周立功也有NXP LPC1114芯片的开发板。
NXP的另一个支持环境是mbed,目前mbed也对Freescale的一些芯片提供支持。
7、 Nuvoton新唐的Nu-Link
目前新唐推出了M0内核的MCU,(M4内核的计划推出)开发板自带Nu-Link,用来调试自家的芯片。新唐科技的开发板型号很多,如果参加过中电网的线上座谈的话,手头应该会有了。开发板的价格未知,但厂商目前基本上是以送的方式再推广。
8、Freescale的Freedom
飞思卡尔的Freedom系列开发板算很便宜,官方价格有些不到¥100,用於开发M0+系列的KinetisL系列。自带 OPENSDA。调试工具还不了解,肯定支持自家的Codewarrior。这个开发板目前销售数量上万(不是国内的数据),
9、CooCox的CoLink
也是采用FTDI2232芯片实现。属於少有的国内开源项目。提供完整的资料,可以自制。 CoLink不仅支持CooCox IDE,也可以支持KEIL等环境,只是目前支持的芯片还比较少,并且大部分是M0内核的芯片。
10、其他MCU厂商的调试工具
爱特梅尔
EnergyMicro
英飞凌
亚德诺
赛普拉斯
芯科实验室
富士通
盛群
瑞萨
其实,目前,芯科实验室收购EnergyMicro ,NXP收购飞思卡尔。
这个东西,也是在IAR里面费了老大的劲找K60的芯片没找到,查百度得到的,学习一波。
参考:
1、 http://bbs.eeworld.com.cn/thread-431094-1-1.html
2、http://www.veryarm.com/1114.html