J-Link用户指南
版本:Rev2.3 www.mcu123.com
2007-05
Rev 2.3
- 1 -
www.mcu123.com
目 录
一、J-Link ARM JTAG仿真器简介
二、J-LINK驱动安装
三、J-LINK在各个主流开发环境下的设置
四、J-FLASH ARM使用设置
五、F.A.Q
附录一、使用jlink的GDBserver
附录二、J-Flash ARM命令行使用说明
Rev 2.3
- 2 -
www.mcu123.com
版本更新说明
Rev2.2:
增加FAQ 2007-6 Rev2.1:
增加了命令行使用说明做为附录二,2007-05更新。
Rev2.0:
添加了GDBserver的使用指南作为附录一,2006年10月更新。
Rev1.6a:
修改了下载速度的错误,更新了器件支持,改动了一些地方的排版格式
Rev1.6:
添加IAR下使用JLINK进行FLASH下载的注意事项
Rev1.5:
添加KEIL下Utilities下的设置截图,2006-08升级
Rev1.4:
修正部分文字错误,添加速度测试截图,添加J-FLASH ARM新特性说明,2006-07升级
Rev1.3a:
增加F.A.Q,2006-06-07升级
Rev1.3:
增加F.A.Q,2006-06-04升级
Rev1.2: 增加J-FLASH ARM的操作说明,2006-06-02升级
Rev1.0:
原始版本,2006-06-01完成
Rev 2.3
- 3 -
www.mcu123.com
一、J-Link ARM JTAG仿真器简介
J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWARM,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。 J-Link ARM主要特点
* IAR EWARM集成开发环境无缝连接的JTAG仿真器
* 支持所有ARM7/ARM9内核的芯片,以及cortex M3,包括Thumb模式
* 支持ADS,IAR,KEIL,WINARM,REALVIEW等几乎所有的开发环境 * 下载速度高达ARM7:600kB/s,ARM9:550kB/s,通过DCC最高可达800 kB/s
* 最高JTAG速度12 MHz * 目标板电压范围1.2V – 3.3V * 自动速度识别功能
* 监测所有JTAG信号和目标板电压 * 完全即插即用
* 使用USB电源(但不对目标板供电) * 带USB连接线和20芯扁平电缆
Rev 2.3
- 4 -
www.mcu123.com
* 支持多JTAG器件串行连接 * 标准20芯JTAG仿真插头 * 选配14芯JTAG仿真插头 * 选配用于5V目标板的适配器
* 带J-Link TCP/IP server,允许通过TCP/ IP网络使用J-Link J-Link支持ARM内核 * ARM7TDMI(Rev 1) * ARM7TDMI(Rev 3) * ARM7TDMI-S(Rev 4) * ARM720T * ARM920T * ARM926EJ-S * ARM946E-S * ARM966E-S
速度信息:
Rev 2.3
- 5 -
www.mcu123.com
J-Link Rev. 185.0 kB/s 1-4
150.0 kB/s
75.0 kB/s
(4MHz JTAG) (4MHz JTAG) (4MHz JTAG)
600.0 kB/s
550.0 kB/s
J-Link Rev. 800.0 kB/s 5
(12MHz JTAG) (12MHz JTAG) (12MHz JTAG)
Rev 2.3
- 6 -
www.mcu123.com
二、X-LINK驱动安装
X-LINK是本站开发的JLINK的兼容产品,具有一样的性能,但是却只有十分之一的价格!
注意:J-LINK有非常多的授权文件(License),请根据实际需要选
择合适的授权版本!IAR版本的J-LINK功能有限,但是价格较为便宜,推荐购买全功能版本的J-LINK,可以获得更多性能!
首先到http://www.segger.com/download_jlink.html下载最新的J-LINKJ-Link ARM software and documentation pack,内含USB 驱动软件,
driver, J-Mem, J-Link.exe and DLL for ARM, J-Flash and J-Link RDI。
注意:SEGGER公司升级比较频繁,请密切留意SEGGER公司网站,下载最新驱动,以支持更多器件!
安装驱动很简单,只要将下载的ZIP包解压,然后直接安装即可,默认安装,一路点击“NEXT”即可:
Rev 2.3
- 7 -
www.mcu123.com
Rev 2.3
- 8 -
www.mcu123.com
Rev 2.3
- 9 -
www.mcu123.com
Rev 2.3
- 10 -
www.mcu123.com
安装完成后, 请插入JLINK硬件,然后系统提示发现新硬件,一般情况下会自动安装驱动,如果没有自动安装,请选择手动指定驱动程序位置(安装目录),然后将驱动程序位置指向到JLINK驱动软件的安装目录下的Driver文件夹,驱动程序就在改文件夹下。
安装完成可以桌面出现两个快捷图标,J-Link ARM可以用来进行
设置和测试,下面我们看一下X-LINK的测试数据(在7X256 EK上测试):
Rev 2.3
- 11 -
www.mcu123.com
再看看J-LINK的原始测试数据:
Rev 2.3
- 12 -
www.mcu123.com
注意:由于ARM7TDMI-S内核的特殊性,LPC2000系列的JTAG速度最高只能达到1/6系统时钟,一般最高是4.8M,如果JTAG速度超过4.8M,J-LINK ARM将提示找不到LPC2000。这是LPC2000内核的局限,与JLINK无关!同时在开发环境下调试LPC2000的时候,也注意JTAG时钟不能设置超过4.8M,不然将工作不稳定,甚至无法连接到目标芯片。其他芯片,如ATMEL的SAM7系列无此问题。
注意:由于J-LINK版本不断更新,该测试数据也会有相应变化,这里提供的测试数据主要是为了验证我们的产品和原装产品的性能差异。
三、J-LINK在各个主流开发环境下的设置
Rev 2.3
- 13 -
www.mcu123.com
下面简单叙述一下在Keil下如何使用J-Link:
选择“RDI Interface Driver”,然后点击“Settings”:
请点击“…”,指向到JLINK安装目录。
点击“Configure RDI Driver”出现以下几个选项卡:
Rev 2.3
- 14 -
www.mcu123.com
如果是本机调试,直接使用USB口即可;如果是在局域网内调试,可以选择TCP/IP,然后指定一个挂接了J-LINK的PC的IP地址。
Rev 2.3
- 15 -
www.mcu123.com
设置JTAG速度,如果是-S内核,建议使用Auto方式,如果是非-S内核,可以直接使用最高速度12M。使用过程中如果出现不稳定情况,可以将JTAG时钟速度适当调低。
Rev 2.3
- 16 -
www.mcu123.com
使能FLASH编程功能,如果你的目标芯片是带片内FLASH的ARM,就可以使用该功能,这样子在调试前J-LINK就会先编程FLASH。
Rev 2.3
- 17 -
www.mcu123.com
使用软件断点,如果是带片内FLASH的ARM,建议使用该功能,可以打上n多断点,方便调试。
Rev 2.3
- 18 -
www.mcu123.com
在这里可以设置Reset策略,有好几种Reset策略可选,同时可以设置Reset后的延迟时间,这个设置对于需要较长复位时间的芯片较为有用,如AT91RM9200。
以上设置是用JLINK进行Debug的设置,如果要使用KEIL提供的
即“DOWNLOAD”功能则还需要在“Utilities”菜单里面进
行和“Debug”一样的设置:
Rev 2.3
- 19 -
www.mcu123.com
选择“RDI Interface Driver”,然后点击“Settings”
选择“J-Link Flash Programmer”
接下来的设置就同“Debug”下设置一样了
完成以上设置后,就可以通过
按钮进行直接下载。注意,该
Rev 2.3
- 20 -
www.mcu123.com
功能只支持具备片内FLASH的ARM7/9芯片。
在ADS下使用设置:
点击“Add”,选择JLINKRDI.DLL:
点击“Configure”,出现以下内容:
Rev 2.3
- 21 -
www.mcu123.com
进入AXD后的信息(注意LOG FILE的内容):
Rev 2.3
- 22 -
www.mcu123.com
在IAR下使用设置:
在IAR既可以使用IAR提供的JLINK的驱动,也可以使用RDI接口的驱动,推荐使用RDI接口的驱动,因为IAR版本的JLINK对速度和功能做了限制。
首先打开一个工程,然后按照下图开始进入设置页面:
Rev 2.3
- 23 -
www.mcu123.com
Rev 2.3
- 24 -
www.mcu123.com
Rev 2.3
- 25 -
www.mcu123.com
Rev 2.3
- 26 -
www.mcu123.com
Rev 2.3
- 27 -
www.mcu123.com
如果购买的是IAR版本的JLINK,请选择“J-LINK/J-TRACE”;如果购买的是全功能版本JLINK,则既可以选择“J-LINK/J-TRACE”,也可以选择“RDI”,建议选择“RDI”,以提升性能。
Rev 2.3
- 28 -
www.mcu123.com
如果选择“J-LINK/J-TRACE”,则无需额外设置:
Rev 2.3
- 29 -
www.mcu123.com
如果选择“RDI”,则还需要指定JLINKRDI.DLL的位置:
Rev 2.3
- 30 -
www.mcu123.com
设置完成后将多出一个RDI菜单,如下图:
Rev 2.3
- 31 -
www.mcu123.com
在RDI菜单下有“CONFIGURE”选项,这里可以对JTAG时钟,FLASH,断点,CPU等进行设置,请注意里面的FLASH和CPU型号与目标板相吻合。
另外,IAR下使用JLINK的时候,注意不要再使用IAR自带的FLASHLOADER软件进行FLASH下载:
请将“Use flash loader”前的勾去掉,使用JLINK的FLASH编程算法和使用IAR的FLASHLOADER,速度可能差好几倍!
Rev 2.3
- 32 -
www.mcu123.com
四、J-FLASH ARM使用设置
安装完JLINK的驱动后会出现两个快捷图标,其中一个是J-FLASH ARM,这个应用程序是用来单独编程FLASH的(需要J- FLASH ARM License支持):
首次使用的时候应该在File菜单,选择Open Project,选择你的目标芯片:
Rev 2.3
- 33 -
www.mcu123.com
然后通过“File”菜单下的“Open…”来打开需要烧写的文件,可以是.bin格式,也可以是.hex格式,甚至可以是.mot格式。注意起始地址。
接下来在“Options”选择“Project settings”:
Rev 2.3
- 34 -
www.mcu123.com
在ARM选项卡可以选择目标芯片,如果不是具备片内FLASH的芯片的话请选择“Generic ARM7/ARM9”。
Rev 2.3
- 35 -
www.mcu123.com
FLASH选项卡,如果之前是“Opon project”这里就不需要设置,默认即可,如果是自己新建的project,则需要小心设置。
如果前面的ARM选项卡里选择的是“Generic ARM7/ARM9”,则可以在FLASH选项卡里面选择FLASH型号:
Rev 2.3
- 36 -
www.mcu123.com
Rev 2.3
- 37 -
www.mcu123.com
支持非常多的FLASH器件,只要是大厂的FLASH,基本都可以找到!而且会不断升级以支持最新器件。
设置好之后,就可以到Target里面进行操作,一般步骤是先“Connect”,然后“Erase Chip”,然后“Program”,可以自己慢慢体会。大部分芯片还可以加密,主要的操作都在Target菜单下完成。
从3.30g版本开始,J-FLASH ARM开始支持XSCALE:
Rev 2.3
- 38 -
www.mcu123.com
如有任何问题,可以到BBS发问,同时请多多关注网站,以获得最新说明和最新范例!
Rev 2.3
- 39 -
www.mcu123.com
五、JLINK F.A.Q
1Q:国内代理商卖的JLINK价格是1900,贵站兼容JLINK的调试器的价格也在1000多,价格优势似乎不明显?
1A:注意,JLINK分很多版本,国内代理商销售的1900的JLINK全是IAR版本的,即只能在IAR下使用,而且功能有所限制,速度也有限制!本站可以按照客户需求进行定制,最全版本的JLINK的价格不超过2000,但是同样功能的原装JLINK的价格是1000欧元!而且目前国内仅MCU123一家可以提供全功能版本的JLINK,市面上在销售的其他JLINK全部都是IAR版本的,即SEGGER为IAR做的OEM产品!同样,ATMEL的SAM-ICE也是SEGGER做的OEM产品,但是限制更多。本站也可以按照客户需求进行定制,IAR版本的JLINK的价格在1000以内。
2Q:JLINK和其他JTAG调试工具相比有什么优势? 2A:全功能版本的JLINK具有如下主要特点:
1),支持ADS,KEIL,IAR,WINARM,RV等几乎所有开发环境(RDI License支持);
Rev 2.3
- 40 -
www.mcu123.com
2),支持FLASH软件断点,突破一般ARM仿真器2个FLASH断点的限制,可以设置无穷个FLASH断点,极大的提高调试效率(Flash BP License支持);
3),支持FLASH编程,可以在各个开发环境下轻松编程FLASH(Flash DL License支持);
4),具备单独烧写FLASH的独立软件,提高生产效率(J-FLASH ARM License和J-FLASH ARM 软件支持);
5),超快速度,编程速度和调试速度在目前已知调试工具里面最快(达到600K,请参考JLINK用户手册);
6),支持几乎所有ARM7,ARM9,暂时不支持XSCALE(支持器件列表请参考JLINK用户手册),从3.30g版本开始J-FLASH ARM软件已经可以支持XSCALE系统的FLASH编程;
目前,ULINK(SMARTDEBUGGER)只能在KEIL下使用;MULTI-ICE(本站提供并口,USB两个版本)可以在ADS、IAR下使用,在IAR下使用的时候可以利用IAR的FLASHLOADER进行FLASH编程,但是在ADS下使用的时候缺少编程插件;EASYJTAG只能在ADS下使用;WIGGLER可以在各个开发环境下使用,但是目前只能在IAR下用MACRAIGOR的驱动,才能编程FLASH,而且速度很慢;而JLINK可以在各种开发环境下调试、下载程序!
Rev 2.3
- 41 -
www.mcu123.com
3Q:JLINK提供升级以支持新器件么?
(JLINK)安装程序(驱动),3A:可以到www.segger.com网站下载JLINKsegger升级较快,请密切关注。如果需要更改JLINK的授权,比如将IAR版本升级到全功能版本,请直接发回给我们进行升级,最终补版本差价即可。
4Q:为什么我购买的JLINK在KEIL以下不能使用,出现以下错误:
4A:J-LINK提示没有相应的license,亦即没有授权,亦即您购买的J-LINK并不附带RDI License,是IAR版本的J-LINK,如果需要RDI接口的License可以发回给我们进行升级,升级按照功能收费。
5Q:J-Link的驱动程序和应用程序是否可以免费升级?
Rev 2.3
- 42 -
www.mcu123.com
5A:Segger网站升级较快,建议大家经常关注一下,J-Link的驱动程序和应用程序是免费升级的,只要你购买了某个功能的License,该部分功能就可以永远免费升级,当下载了新版本的J-LINK程序后,只要插上J-LINK,然后运行J-LINK ARM.EXE,就可以实现J-LINK的固件升级,如下:
请注意看图中的第3-5行的信息,软件提示升级成功。
6Q:我在KEIL下面调试LPC2142,为了达到最快的速度,我在Configure里面将JTAG速度从AUTO修改到12M,但是系统提示:
请问这个是什么问题?如何解决?另外,用AUTO的话就没有问题。
Rev 2.3
- 43 -
www.mcu123.com
6A:这个是由LPC2000的内核特殊性所决定的。LPC2000的内核是ARM7TDMI-S,是可综合版本的ARM7TDMI,即PHLIPS有权限来对ARM7TDMI进行部分改动,主要是调试接口的改动,LPC2000采用的JTAG接口包含了一个RTCK引脚,这个引脚是用来同步JTAG调试时钟用的,当TCK发送一个时钟,该时钟经过一定延迟后就由RTCK返回,如果接收不到返回的时钟,系统就会提示找不到目标芯片,即调试失败。经过测试,LPC2000系列ARM7TDMI-S最高只能稳定工作在4800KHz频率下,再高就会出现以上错误提示。由于
ULINK使用的最高JTAG只能达到1M,所以在使用ULINK的时候根本就不会出现这个问题。从另一个侧面讲,亦即调试LPC2000的时候,JLINK的速度最高可以是ULINK的4.8倍。
7Q:我使用IAR开发环境,为什么用JLINK的FLASH下载速度和用MULTI-ICE的下载速度差不多?
7A:使用IAR的时候请注意不要使用IAR自带的FLASHLOADER进行FLASH下载,而应该使用JLINK的FLASH编程算法,关键一点是将“USE FLASH LOADER”前的勾去掉,如下图:
Rev 2.3
- 44 -
www.mcu123.com
使用FLASH LOADER进行FLASH下载和使用JLINK进行FLASH下载的速度要差好几倍!
8Q:我用LPC236X芯片,为什么JLINK老提示出错.
8A:一般来说LPC236X的芯片在未烧录程序时,JTAG时钟只能在1M以下,最好是500KHZ左右.
如在CONFIG中设置
Rev 2.3
- 45 -
www.mcu123.com
附录一 使用jlink的GDBserver
Team Mcu123
GDB作为开源的调试器,其使用比较广泛,是使用gcc的标配调试器。
在segger官方推出GDBserver之前,网上也有个人提供的jlinkgdbserver,但是效果不是很好。需要注意的是,后者在一般的jlink上即可使用,而segger官方的还需要一个GDBfull license的授权,需要额外的费用。 一,软件安装
请先到http://www.segger.com/download_gdb.html下载包含有GDBserver的软件,然后安装。
安装完成后,请连接好jlink与目标板,在pc端运行jlink GDBserver,正确的显示如图:
可以看到目标器件的类型,ID, 目标板电压等。
说明此时GDBserver已经与目标器件建立了联系,等待GDB从端口2331来连接。 为了使用GCCARM来编译软件,还需要安装GNUARM或者WinARM。
Rev 2.3
- 46 -
www.mcu123.com
二,调试
使用GCCARM编译应用,最终会生成一个elf文件,注意在编译的时候要打开调试信息的选项,比如使用参数-gdwarf-2。
运行arm-elf-insight,这是个图形化的ARM GDB,如下图:
使用fileÆopen, 打开前面所创建的elf文件,insight中的显示将如下
然后点击runÆrun, 在弹出的target select中按照如下设置
Rev 2.3
- 47 -
www.mcu123.com
注意端口号一定要与GDBserver提供的一致。点击ok,即可连接。正确连接后如下图:
GDBserver中会显示已连接,同时insight中指令也会停在起始位置。此时就可以开始调试了,比如按s单步进入。
由此可见,新加入的GDBfull license 对GDB的支持更好,使用其来调试也较方便。
Rev 2.3
- 48 -
www.mcu123.com
附录二、J-Flash ARM命令行使用说明
为了方便扩展使用,J-Flash ARM还提供了命令行方式。
需要注意的是,默认安装目录是program files文件夹下,而这个路径存在一个空格(即program和files中间的空格),而这在命令行方式下是不允许的,所以,如果使用命令行,需要更改安装路径,或者把工程文件和目标文件放到别的目录下。
J-FLASH ARM主要有以下命令:
Rev 2.3
- 49 -
www.mcu123.com
下面我们以AT91SAM7S64为目标芯片,来进行命令行演示。 进入命令行状态前,我们先把AT91SAM7S64.JFLASH工程文件和KEIL_MOUSE.BIN文件放到C盘根目录下,方便操作。然后连接好目标板和J-LINK。
首先进入到安装目录:
然后键入命令,如下图所示:
Rev 2.3
- 50 -
www.mcu123.com
回车后,J-FLASH ARM的用户界面会被弹出,然后可以看到J-FLASH ARM很快完成操作并退出,如果我们要看整个操作过程的log信息,我们可以去掉命令行的-exit参数,去掉这个参数后,J-FLASH ARM在完成操作后并不会被关闭,这个时候我们可以通过log窗口看到操作信息:
Log窗口内的主要信息是:
Opening project file [c:\\AT91SAM7S64.jflash] ... - Project opened successfully
Opening data file [c:\\keil_mouse.bin] ...
- Data file opened successfully (6088 bytes, 1 range, CRC = 0x552C494F) Auto programming target (6088 bytes, 1 range) ... - Connecting ... - Connected successfully
- Programming target (6088 bytes, 1 range) ... - Target programmed successfully
Rev 2.3
- 51 -
www.mcu123.com
- Verifying CRC of affected sectors ...
- CRC of affected sectors verified successfully (CRC = 0xE898B400)
- Target erased, programmed and verified successfully - Completed after 1.312 sec
可以看到-openprj命令就是打开工程文件,即FLASH编程算法;-open是打开数据文件,即需要写入的bin或者hex文件,需要注意的是-open参数后面还需要添加烧写地址,即上述命令里面的“,0x100000”,不然会编程失败;-auto是指自动操作,包含了擦除,编程,校验几个步骤。如果只需要读,擦除,编程等一个单独的操作,J-FLASH ARM也提供了相应的命令参数,可以自行尝试。在尝试阶段,建议不要加-exit命令,方便查看log窗口的信息,以确认操作是否成功完成。
既然提供了命令行方式,我们就可以使用批处理命令来使得操作更为简单:
新建一个文本文件,然后键入以下内容:
“cd c:\\program files\\segger\\jlinkarm_v370a
jflasharm.exe-openprjc:\\AT91SAM7S64.jflash -openc:\\keil_mouse.bin,0x100000 -auto ”
然后另存为bat文件,如jflash.bat。
然后运行该bat文件,可以获得和前面命令行一样的效果。
更进一步的,我们来挖掘一下bat的批处理功能,新建一个bat文件,键入以下内容:
Rev 2.3
- 52 -
www.mcu123.com
“cd c:\\program files\\segger\\jlinkarm_v370a
jflasharm.exe -openprjc:\\AT91SAM7S64.jflash -openc:\\keil_mouse.bin,0x100000 -auto -exit
jflasharm.exe -openprjc:\\AT91SAM7S64.jflash -openc:\\keil_memory.bin,0x100000 –auto”
然后运行bat文件,可以看到J-FLASH运行了两次,分别把keil_mouse.bin和keil_memory.bin写入到了AT91SAM7S64里面:
利用bat的特性我们可以用来完成一些特殊用途。比如对于具备片内FLASH,同时又开放总线的ARM芯片,比如STR710。我们可以先新建两个工程,分别针对片内FLASH和片外FLASH,然后建立bat文件,分别打开两个工程,编程两段FLASH。这样可以有效提高工作效率。
Rev 2.3
- 53 -
www.mcu123.com
更进一步,我们可以在keil下也加入这个功能,由于keil开放了一个外部FLASH编程工具接口,使得使用bat文件成为可能,打开Keil的“Options for Target”选项,选择“Utilities”选项卡,把默认的“Use Target Driver for Flash Programming”换成“Use External Tool for Flash Programming”,然后在“Command”一栏选择之前设定好的bat文件,点击确认。
完成以上设置后,点击Keil工具栏上的Load按钮:
马上会调入J-FLASH的编程界面,和直接运行bat文件一样效果。
Rev 2.3
- 54 -
www.mcu123.com
更多的花样和参数可以按照实际需求进行变化和改进,利用批处理的优势可以在调试和批量生产过程中极大的提升效率。
请多多访问http://www.mcu123.com ,以获取最近更新! Rev 2.3
- 55 -
因篇幅问题不能全部显示,请点此查看更多更全内容