您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > JTAG-SWD-JLink等-介绍
stm32JTAG和SWD的使用区别搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的。接触了那么多的调试规范、调试工具、调试手段,彼此之间的关系却也不是特别清楚,今天就来捋一捋:JTAG协议JTAG(JointTestActionGroup,联合测试行动小组)是一种国际标准测试协议(IEEE1149.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接口。所以,目前市场上已经很少看到它的身影了。SWD接口串行调试(SerialWireDebug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。SWD和传统的调试方式区别:SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小啦!比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。RDI接口远程调试接口(RemoteDebugInterface),是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。现在众多的IDE厂家都逐步采用标准RDI作为ARM仿真器的调试接口,因此使跨平台的硬件调试成为可能。EasyJTAG由于使用标准RDI调试接口,因此在任何使用标准RDI接口的IDE调试环境中都可以使用,例如ARM公司的ADS1.2/IAR公司的EWARM3.30。JLink仿真器J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。ULink仿真器ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINKPro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealViewMDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chipJTAG,SWD和OCDS)、Flash编程。但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。ST-Link仿真器ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK/V2指定的SWIM标准接口和JTAG/SWD标准接口,其主要功能有:编程功能:可烧写FLASHROM、EEPROM、AFR等;仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;编程性能:采用USB2.0接口,进行SWIM/JTAG/SWD下载,下载速度快;CMSISARMCortex™微控制器软件接口标准(CMSIS:CortexMicrocontrollerSoftwareInterfaceStandard)是Cortex-M处理器系列的与供应商无关的硬件抽象层(英文原文为:avendor-independenthardwareabstractionlayerfortheCortex-Mprocessorseriesanddefinesgenerictoolinterfaces—来自ARM官方定义)。使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。软件的创建被嵌入式行业公认为主要成本系数。通过在所有Cortex-M芯片供应商产品中标准化软件接口,这一成本会明显降低,尤其是在创建新项目或将现有软件迁移到新设备时。最新版本的CMSIS为4.5。CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。CMSIS软件层次CMSIS可以分为多个软件层次,分别由ARM公司、芯片供应商提供。其中ARM提供了下列部分,可用于多种编译器:●内核设备访问层:包含了用来访问内核的寄存器设备的名称定义,地址定义和助手函数。同时也为RTOS(实时操作系统)定义了独立于微控制器的接口,该接口包括调试通道定义。●中间设备访问层:为软件提供了访问外设的通用方法。芯片供应商应当修改中间设备访问层,以适应中间设备组件用到的微控制器上的外设。目前中间设备访问层仍处于开发过程中,本文不做详述。芯片供应商扩展下列软件层:●微控制器外设访问层:提供片上所有外设的定义。●外设的访问函数(可选):为外设提供额外的助手函数。CMSIS为Cortex-Mx微控制器系统定义了:●访问外设寄存器的通用方法和定义异常向量的通用方法。●内核设备的寄存器名称和内核异常向量的名称。●独立于微控制器的RTOS接口,带调试通道。●中间设备组件接口(TCP/IP协议栈,闪存文件系统)。CMSIS包含的组件1、外围寄存器和中断定义:适用于设备寄存器和中断的一致接口2、内核外设函数:特定处理器功能和内核外设的访问函数3、DSP库:优化的信号处理算法,并为SIMD指令提供Cortex-M4支持4、系统视图说明(SVD):描述设备外设和中断的XML文件。该标准完全可扩展,可确保其适合于所有Cortex-M处理器系列微控制器,从最小的8KB设备到具有复杂通信外设(如以太网或USB)的设备。(内核外设函数的内存要求少于1KB代码,少于10字节RAM)。基于CMSIS应用程序的基本结构CMSIS-外设访问层的文件基于CMSIS应用程序的基本结构独立于编译器的文件:●Cortex-M3内核及其设备文件(core_cm3.h+core_cm3.c)─访问Cortex-M3内核及其设备:NVIC,SysTick等─访问Cortex-M3的CPU寄存器和内核外设的函数●微控制器专用头文件(device.h)─指定中断号码(与启动文件一致)─外设寄存器定义(寄存器的基地址和布局)─控制微控制器其他特有的功能的函数(可选)●微控制器专用系统文件(system_device.c)─函数SystemInit,用来初始化微控制器─函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm32f10x_xx.s/.c,在跳转到main前调用─SystemFrequncy,该值代表系统时钟频率─微控制器的其他功能(可选)编译器供应商+微控制器专用启动文件●编译器启动代码(汇编或者C)(startup_device.s)─微控制器专用的中断处理程序列表(与头文件一致)─弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖)ispISP,即In-SystemProgramming,在线编程。具有ISP功能的单片机芯片,可以通过简单的下载线直接在电路板上给芯片写入或者擦除程序,并且支持在线调试。ISP(In-SystemProgramming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。ISP技术是未来发展方向。ISP的工作原理ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。ISP的优点ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。
本文标题:JTAG-SWD-JLink等-介绍
链接地址:https://www.777doc.com/doc-4297978 .html