Linux环境下Jlink配置
转自:http://blog.163.com/nesnil@126/blog/static/38081298201212084340862/
我的开发环境:
l Ubuntu 10.04
l Jlink V8(D版)
l VMware Player 3.1.4
1、 安装JLlink V8 Linux驱动
l 从官网下载:http://www.segger.com/cms/jlink-software.html
l Linux环境下解压缩,阅读README,按照步骤进行配置
apt-get -install libusb
安装libusb,但是提示找不到libusb,大概是我的环境的软件源的问题,不去管他。
到lib目录下查找,发现有已经有了libusb,这一步可以跳过。
ldconfig
复制jlink自己的库文件到/usr/lib,如果使用README上提供的命令会发现,复制过去的文件中,链接文件变成了普通文件,为了使链接文件复制前后保持一致,cp命令需要加上-d选项,或者复制后再用ln命令重新建立链接。
2、 开始试验
l 将JLink连接到PC,再接入VMware。
l 运行目录下的./start文件,这是一个脚本,给它加上x属性,否则不能联想。运行情况如下:
SEGGER J-Link Commander V4.41g ('?' for help)
Compiled Jan 27 2012 19:11:22
Updating firmware: J-Link ARM V8 compiled Jan 12 2012 20:43:19
Replacing firmware: J-Link ARM V8 compiled Dec 16 2010 20:21:29
New firmware booted successfully
Communication timed out - Can not execute firmware update
J-Link>
l 程序启动后Jlink会升级固件,结果升级的固件无法运行,拔下来之后发现jlink已经不能用了,没有办法,需要重新刷固件。怎么才能不让Jlink自动升级固件呢?经过十几次的尝试,重新刷了十几遍的固件,终于找到一些方法。
a) 使用旧版本驱动软件。我发现jlink的升级固件并不是从网上下载的,而是该版本内嵌的固件,每一个不同的版本所带的固件也不相同。我下载的是最新的V441g版本,所带的固件比我的Jlink上的固件要新不少。从网上下载了V422a版本后,不会提示升级固件了,能够正常连接到开发板。另外,我发现,如果Windows下能够正常连接的话,Linux下选用和Windows下同样的软件版本,应该就能正常使用了,我Windows下正好也是V422a版本。
b) 升级Jlink固件。如果能想办法把jlink升级到最新的固件,那即便用最新的驱动软件应该也不会提示升级固件了。Linux下是不可以了,似乎不能成功,Windows可以试一试。下载了Windows版本的Jlink驱动V442b,安装后连接Jlink,果然提示升级,升级后发现也不行,固件似乎也不能运行,Jlink Commander 停在了“New firmware booted successfully”这里,我的Jlink大概不能兼容最新的固件。软件换回V422a版本,重新连接Jlink,竟然发现固件升级成功了,而且也可以连接到开发板,简单测试没有发现问题。回到Linux下使用V441g版本连接,正常连接。
root@abc-desktop:/home/abc/jlink/JLink_Linux_V441g# ./start
SEGGER J-Link Commander V4.41g ('?' for help)
Compiled Jan 27 2012 19:11:22
DLL version V4.41g, compiled Jan 27 2012 19:11:21
Firmware: J-Link ARM V8 compiled Feb 8 2012 14:30:39
Hardware: V8.00
S/N: 805306163
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull
VTarget = 3.287V
Info: TotalIRLen = 4, IRPrint = 0x01
Info: CP15.0.0: 0x41129200: ARM, Architecure 4T
Info: CP15.0.1: 0x0D172172: ICache: 16kB (64*8*32), DCache: 16kB (64*8*32)
Info: Cache type: Separate, Write-back, Format A
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x0032409D, IRLen: 04, Unknown device
Found ARM with core Id 0x0032409D (ARM9)
JTAG speed: 100 kHz
J-Link>