Linux环境下Jlink配置 – sun

Linux环境下Jlink配置2013-03-04 14:52 107人阅读 评论(0)收藏 举报

目录(?)[+]

一、开发环境

我的开发环境:

lUbuntu 12.10

lJlink V8

lJLink_Linux_V422a.tgz

二、步骤

1、安装JLlink V8 Linux驱动

l从官网下载:http://www.segger.com/cms/jlink-software.html

lLinux环境下解压缩,阅读README,按照步骤进行配置

1.apt-get update

apt-get install libusb

安装libusb,但是提示找不到libusb,大概是我的环境的软件源的问题,不去管他。

到lib目录下查找,发现有已经有了libusb,这一步可以跳过。

2.cp libjlinkarm.so.* /usr/lib

ldconfig

复制jlink自己的库文件到/usr/lib,如果使用README上提供的命令会发现,复制过去的文件中,链接文件变成了普通文件,为了使链接文件复制前后保持一致,cp命令需要加上-d选项,或者复制后再用ln命令重新建立链接。

3.cp 45-jlink.rules /etc/udev/rules.d/

4.最后一步是要建立一个用户组,因为我都是超级用户登录的,没有必要,略过。

2、开始试验

升级Jlink固件。如果能想办法把jlink升级到最新的固件,那即便用最新的驱动软件应该也不会提示升级固件了。Linux下是不可以了,似乎不能成功,Windows可以试一试。下载了Windows版本的Jlink驱动V442b,安装后连接Jlink,果然提示升级,升级后发现也不行,固件似乎也不能运行,Jlink Commander停在了“New firmware booted successfully”这里,我的Jlink大概不能兼容最新的固件。软件换回V422a版本,重新连接Jlink,竟然发现固件升级成功了,而且也可以连接到开发板,简单测试没有发现问题。回到Linux下使用V441g版本连接,正常连接。

root@kangear:~/JLink_Linux_V422a# ./start

SEGGER J-Link Commander V4.22 (‘?’ for help)

Compiled Apr 5 2011 13:54:55

DLL version V4.22, compiled Apr 5 2011 13:54:52

Firmware: J-Link ARM V8 compiled Jun 16 2011 14:52:53

Hardware: V8.00

S/N: 12345678

Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull

VTarget = 0.000V

J-Link>

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Ubuntu 10.04下J-Link配置及使用2011-07-27 17:16:04

分类: 嵌入式

摘要: 本文介绍了如何在Ubuntu平台配置J-Link,因版本较高,网上一些资料已不适用,根据J-Link的README文件操作,会产生诸多问题,本文对产生问题的原因进行简单分析,并给出解决方法。最后给出J-Link基本用法。1 引言 最近因项目需要,需要配置Linux下的J-Link工具,网上有一博文《ubuntu 9.04下J-Link for linux 的配置与使用》,介绍得蛮详细的,但在实际操作过程中差别甚大,应该是版本的原因(我用的是Ubuntu 10.04LTS和JLink_Linux_V430)。 JLink_Linux_V430安装包里的README文件,介绍了如何配置,过于简单,而且安装过程中会遇到不少问题,遂记录整个过程,以供分享。2 J-Link配置2.1安装libusb 如果J-Link是通过USB连接的,得先装libusb,README文件声称用apt-get install libusb,在我机器上不行,提示“无法找到软件包”。所以得自己下载安装。 在http://sourceforge.net/projects/libusb/files/libusb-1.0/下载(libusb官网,http://www.libusb.org/),并安装,整个过程多次需要root权限,可通过命令sudo -s一次性取得root权限:

    root@jelline:~/Downloads# tar jxvf libusb-1.0.8.tar.bz2root@jelline:~/Downloads# cd libusb-1.0.8/root@jelline:~/Downloads/libusb-1.0.8#./configureroot@jelline:~/Downloads/libusb-1.0.8# makeroot@jelline:~/Downloads/libusb-1.0.8# make install

2.2 安装libreadline JLinkExe会用到libreadline库,所以得把libreadline库装上。http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html中Current Status选择下载,并安装,如下所示:

    root@jelline:~/Downloads# tar-zxvf readline-6.2.tar.gzroot@jelline:~/Downloads/readline-6.2#./configureroot@jelline:~/Downloads/readline-6.2# makeroot@jelline:~/Downloads/readline-6.2# make install

2.3 下载Beta software version for Linux 到http://www.segger.com/cms/jlink-software.html下载Beta software versionfor Linux,提示输入序列号,随便输入一串数字即可,点submit serial number,接着在I confirm that I will not use the software with illegal clones打勾,而后Download Software。拷贝库,并执行ldconfig,具体如下:

    jelline@jelline:~/Downloads$ tar zxvf JLink_Linux_V430.tgzjelline@jelline:~/Downloads/JLink_Linux_V430$ cp libjlinkarm.so.4*/usr/libjelline@jelline:~/Downloads/JLink_Linux_V430$ ldconfig

上述是依README指示操作,会报如下错误:

    /sbin/ldconfig.real: /usr/lib/libjlinkarm.so.4 is not a symbolic link

问题出在把libjlinkarm.so.4拷贝到/usr/lib就不再是符号链接文件(这点我也纳闷),进入到/usr/lib目录下,删除libjlinkarm.so.4,并重新建立符号链接文件即可,如下:

    root@jelline:/usr/lib# rm libjlinkarm.so.4root@jelline:/usr/lib# ln-s libjlinkarm.so.4.30.0 libjlinkarm.so.4root@jelline:/usr/lib# ldconfig

为了让标准用户有权使用JLinkExe(这句话是README翻译过来的),还需要进行如下操作:

    root@jelline:~/Downloads/JLink_Linux_V430# cp 45-jlink.rules/etc/udev/rules.d/root@jelline:~/Downloads/JLink_Linux_V430# groupadd plugdevroot@jelline:~/Downloads/JLink_Linux_V430# usermod-a -G plugdev jelline

2.4 测试按README文件,貌似已经装好了,但执行JLinkExe,仍提示如下错误:

    root@jelline:~/Downloads/JLink_Linux_V430#./JLinkExeerror while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory

在/usr/lib找不到libreadline.so.5库,最后发现libreadline.so库被放在/lib/下,但其版本是6,创建一个符号链接指向libreadline.so.6.1,具体如下:

    jelline@jelline:/lib$ ls libreadline.so.6*libreadline.so.6 libreadline.so.6.1jelline@jelline:/lib$ ln-s libreadline.so.6.1 libreadline.so.5

OK,现在重新运行JLinkExe就可以了,提示如下信息:

    jelline@jelline:~/Downloads/JLink_Linux_V430$./JLinkExe SEGGER J-Link Commander V4.30(‘?’for help)Compiled Jun 30 2011 15:53:19DLL version V4.30, compiled Jun 30 2011 15:53:15Firmware: J-Link ARM V8 compiled Jun 21 2011 20:26:20Hardware: V8.00S/N: 20100214Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFullVTarget = 3.306VInfo: TotalIRLen = 9, IRPrint = 0x0011Info: Found Cortex-M3 r1p1, Little endian.Info: TPIU fitted.Info: FPUnit: 6 code(BP) slots and 2 literal slotsFound 2 JTAG devices, Total IRLen = 9:#0 Id: 0x3BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)#1 Id: 0x16410041, IRLen: 05, IRPrint: 0x1, STM32 Boundary ScanCortex-M3 identified.JTAG speed: 100 kHzJ-Link>

3 使用JLink在J-Link>输入"?",即给出命令列表。我在使用过程中,总体觉得Linux下JLink不够成熟,主要表现在资料太小、功能不易用、操作成功与否不提示(当然不排除不熟练的原因)。3.1 下载loadbinloadbin用于将二进制文件下载到目标存储器,语法如下:

    Syntax: loadbin <filename>, <addr> //Load binary file into target memory

下载之前需要设置下目标版的处理器,否则无法正常烧写,我的型号是STM32F103RBT6,但在指定的时候只指定为STM32F103RB,如下:

    J-Link>exec device = STM32F103RB

有个麻烦,下载完没有明显提示成功与否,可以通过这样解决:在PC通过命令xxd查看待下载文件,下载进去通过JLink命令mem查看,判断这两者是否一样(只比较前面若干字节即可),若一样,则表示烧写成功。举个例子,把/bin/cp文件烧到板子:

    J-Link>loadbin /bin/cp, 0x08000000Loading binary file… [/bin/cp]Writing bin data into target memory @ 0x08000000.J-Link>mem 0x08000000,3f08000000 = 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 0008000010 = 02 00 03 00 01 00 00 00 40 A1 04 08 34 00 00 0008000020 = 04 73 01 00 00 00 00 00 34 00 20 00 09 00 28 0008000030 = 1D 00 1C 00 06 00 00 00 34 00 00 00 34 80 04jelline@jelline:~$ xxd /bin/cp | more0000000: 7f45 4c46 0101 0100 0000 0000 0000 0000 .ELF…………0000010: 0200 0300 0100 0000 40a1 0408 3400 0000 ……..@…4…0000020: 0473 0100 0000 0000 3400 2000 0900 2800 .s……4. …(.0000030: 1d00 1c00 0600 0000 3400 0000 3480 0408 ……..4…4…

3.2 保存savebin

    Syntax: savebin <filename>, <addr>, <NumBytes> //Saves target memory into binary file

这里值得一提的是,参数<NumBytes>是十六进制,比如指定10,保存的是16个字节。我最开始误以为是十进制,我通过ls命令,发现文件大小与自己预期不一致,对比实际文件与预期大小,才发现这个问题。命令mem的<NumBytes>也是十六进制的。  尽管版本不一,具体配置还需依情况而定,希望本文有启发作用。PS:我刚开始用,欢迎交流!Jelline@126.com@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

SEGGER Forum ?J-Link/Flasher related ?[SOLVED]GDB Server for Linux – libreadline.so.5 error

Dear visitor, welcome to SEGGER Forum. If this is your first visit here, please readthe Help. It explains how this page works. You must be registered before you can use all the page’s features. Please use theregistration form, to register here or read more information about the registration process. If you are already registered, pleaselogin here.

engdoug

Beginner

Date of registration: Mar 22nd 2011

Posts: 2

Location: Curitiba, Brazil

Occupation: Computer Engineer

1

Tuesday, March 22nd 2011, 8:46pm

[SOLVED]GDB Server for Linux – libreadline.so.5 errorI’m tring to install the package Setup_JLinkARM_V424d.zip in my Laptop, but I’mnot able to connect my device.after folow all steps on README.txtI got,

Source code

12
root@vaio:/home/doug/Downloads/Jlink# ./start./JLinkExe: error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory

So I decide to do one Simbolic link from /lib/

Source code

1
ln -s /lib/libreadline.so.5 libreadline.so.5

BUT now I have the error

Source code

12
root@vaio:/home/doug/Downloads/Jlink# ./start./JLinkExe: error while loading shared libraries: libreadline.so.5: wrong ELF class: ELFCLASS64

I’m running debian with 2.6.32-5-amd64 Kernel .Anyone have a clue ?Best RegardsDouglas Go to the top of the page

engdoug

Beginner

Date of registration: Mar 22nd 2011

Posts: 2

Location: Curitiba, Brazil

Occupation: Computer Engineer

2

Wednesday, March 23rd 2011, 2:44pm

Problem SolvedWell, wrong ELF class: ELFCLASS64 is anerror caused when we try to execute one 32bit app with one 64bit lib. So, I discover that I need to do one symbolic link to the 32bit lib instead the one into /lib system folder (amd64-Kernel). Using the apt-file search libreadline.so I got

Source code

12345678910111213141516171819
root@vaio:/home/doug# apt-file search libreadline.solib32readline5: /lib32/libreadline.so.5lib32readline5: /lib32/libreadline.so.5.2lib32readline5-dev: /usr/lib32/libreadline.solib32readline6: /lib32/libreadline.so.6lib32readline6: /lib32/libreadline.so.6.1lib32readline6-dev: /usr/lib32/libreadline.solibreadline5: /lib/libreadline.so.5libreadline5: /lib/libreadline.so.5.2libreadline5-dbg: /usr/lib/debug/libreadline.so.5libreadline5-dbg: /usr/lib/debug/libreadline.so.5.2libreadline5-dev: /usr/lib/libreadline.solibreadline6: /lib/libreadline.so.6libreadline6: /lib/libreadline.so.6.1libreadline6-dbg: /usr/lib/debug/lib/libreadline.so.6.1libreadline6-dbg: /usr/lib/debug/lib32/libreadline.so.6.1libreadline6-dbg: /usr/lib/debug/libreadline.so.6libreadline6-dbg: /usr/lib/debug/libreadline.so.6.1libreadline6-dev: /usr/lib/libreadline.so

And look the first line!

Source code

1
lib32readline5: /lib32/libreadline.so.5

so,.. I removed my symbolic link and ..

Source code

1
wget http://ftp.us.debian.org/debian/pool/main/r/readline5/lib32readline5_5.2-7_amd64.deb

dpkg – i lib32readline5_5.2-7_amd64.debAnd we are done! *now I’m trying to do this server work with eclipse and insight,somebody have one tip or GOOD tutorial ?Go to the top of the page当爱丽思丢失了通往仙境的钥匙,

Linux环境下Jlink配置 – sun

相关文章:

你感兴趣的文章:

标签云: