说到仿真器,首先要了解一下JTAG。 JTAG协议JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:
JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。那么能不能让JTAG支持USB协议,用USB接口来调试ARM呢?这就要说到JLINK和ULINK了。 说明:关于JTAG原理,请参考文章《JTAG调试原理》。 JLink仿真器J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒。其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。 ULINK仿真器ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINKPro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用。 ST-LINKST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。 文章来自VeryARM:http://www.veryarm.com/1114.html,转载请保留。 ( v) U8 ~5 Z2 |; c |
刚学STM32时, 就被这些仿真器搞乱了,5 [. d6 L1 H% p% q8 Z/ P
这篇真是及时雨, 不用自己找就渐渐了解了
想顺便问问一般STM32, PORT 不是用 JTAG 而是SW, 这SW表示什么? V) u/ X0 c/ S& H% ~: L4 @
最近做一个项目,用的是STM32L152RB芯片,主板用开关电源供电,有1MHz 50mV的纹波,控制一个开关电源的充电器,充电器有200kHz 700mV的纹波, 检测装置也有20kHz 700mV的纹波,一星期内干掉两个JTAG JLink仿真器。4 V* ~7 t7 h) O9 m3 |+ y2 j: f
第一个坏掉的仿真器在下载程序时没了反应,等了十多分钟也没下载完就按了一下STM32L152RB芯片的复位开关,结果仿真器连不上,USB接口无法识别。
还好有一个ST-LINK V2仿真器拿来接着调试,结果仿真器无法识别芯片。把仿真器拿到办公室试一下是好的能仿真,能下载。拿到现场却不能用。# ]+ j, G. y% C+ ]3 C* U
等到一星期后拿到新的仿真器,上去不到十分钟就干掉了一个,幸亏买了两个。
总结一下, Y/ }) J7 S* d
1. ST-LINK仿真器在干扰大的环境下不能工作,JLink V8可一在干扰大的环境下工作。& V: F6 ?" y X% C, P
2. ST-LINK仿真器在单步调试时能识别出系统配置的错误(RCC_Configuration()配置错误,如超频等)# W, P0 w) J e* U% g+ T# h
时从仿真状态退出,而JLink V8这时识别不出来程序继续执行直到退出仿真,再进入仿真时或下载程序时
才发现无法仿真或无法下载,也无法擦除芯片,这时用ST-LINK仿真器可以擦除芯片。(如用JLink V8 相
当于芯片废了)
3. ST-LINK仿真器无法擦除EEPROM内存,而JLink V8可以,我的程序有些参数存在EEPROM中程序运行中可
以修改,重新运行时从EEPROM中取出,调试程序时需要空白EEPROM时,用JLink V8整片擦除就行了,- \8 l2 q$ O0 ~9 g5 ]* d% m
用ST-LINK仿真器整片擦除EEPROM中还是原来的数据。3 f+ V: j) o( J, a- D# @
ST-LINK仿真器适合于初学者学习用,实战还是JLink V8。 X# n# [2 o5 i/ A