设为首页 收藏本站
查看: 659|回复: 0

[经验分享] J_link在linux(ubuntu)下的环境配置

[复制链接]

尚未签到

发表于 2018-5-6 11:13:55 | 显示全部楼层 |阅读模式
   1. J_link的依赖环境配置:
J_link的依赖环境有:libusb和libreadline。
(1) 安装libusb:
如果J-Link是通过USB连接的,得先装libusb, JLink_Linux_V430包中READNE
文件声称用apt-get install libusb,在我机器上不行,提示“无法找到软件包:...can
[size=+0]not allocate package libusb”。所以得自己下载安装。
可到gnu官网下载,或直接到我网盘下载共享文件:libusb-1.0.9.tar.bz2

  • root@honli:~/Downloads# tar jxvf libusb-1.0.9.tar.bz2

  • root@honli:~/Downloads# cd libusb-1.0.9/

  • root@honli:~/Downloads/libusb-1.0.9# ./configure

  • root@honli:~/Downloads/libusb-1.0.9# make

  • root@honli:~/Downloads/libusb-1.0.9# make install



(2)安装libreadline:
JLinkExe会用到libreadline库,所以得把libreadline库装上。
可到gnu官网下载,或直接到我网盘下载共享文件
readline-5.2.tar.gz

这一步很关键,因为到最后运行JLinkExe时你很可能会遇到这样的问题:
[size=+0]root@honli:~/Downloads/JLink_Linux_V430#./JLinkExe: symbol lookup error: /usr/lib/libreadline.so.5: undefined symbol: UP
等等

PC,UP这些符号
都是保留在libncurses或libtermcap 之中。检测系统中ncurses库,可以发现有这几个符
号,如:
root@honli:# readelf -a /usr/lib/libncurses.so | grep PC
02c1133c 0000f806 R_386_GLOB_DAT 02c12778 PC
248: 02c12778 1 OBJECT GLOBAL DEFAULT 23 PC
root@honli:# readelf -a /usr/lib/libncurses.so | grep UP
02c1138c 00024b06 R_386_GLOB_DAT 02c12540 UP
587: 02c12540 4 OBJECT GLOBAL DEFAULT 23 UP

既然readline的库文件/usr/lib/libreadline.so.5中找不到这些符号,而我们又知道这些符号的定义在 ./start
./JLinkExe: symbol lookup error: /usr/lib/libreadline.so.5: undefined symbol: PC
或类似的其他问题,如:

ncurses的库文件/usr/lib/libncurses.so中,自然会想到将/usr/lib/libncurses.so设置成readline的依
赖库。

现在查询readline的依赖库:
#root readelf -a /usr/lib/libreadline.so.5 | grep NEEDED
0x00000001 (NEEDED) Shared library: [libc.so.6]

显然还没有libncurses.so.5

另外,为确保ncurses已安装了,先
#root ncurses5-config --version
查看版本,若没有显示,则没安装,可用:
#root apt-get install libncurses5-dev
安装好。
查看ncurses库的路径:
#root ncurses5-config --libs
a. 若显示: /usr/lib, 即库libncurses.so和libncurses.so.5(libncurses.so的软链接,相当于windows
下的快捷键)。
b. 若显示: -L/usr/lib -lncurses, 即-lncurses为库的路径了。
c. 若没有显示,可退回根目录,查找libncurses.so所在的路径。
#root cd /
#root find -name libncurses.so
path......
该过程可能比较久,但若安装了ncurses就必然有结果输出。
进入该目录,复制库,建立软链接:
#root cd path
cp -f libncurses.* /usr/lib
rm -f libncurses.so.5
ln -s libncurses.so libncurses.so.5

好啦,现在开始编译和安装readline。
[size=+0]root@honli:~/Downloads# tar -zxvf readline-5.2.tar.gz


  • root@honli:~/Downloads/readline-5.2# ./configure --prefix=/usr --with-ncurses
  • [size=+0]root@honli:~/Downloads/readline-5.2# gedit shlib/MakeFile
    /*若是上面讨论的情况a和c,将87行的SHLIB_LIBS = /usr/lib/libncurses.so
    /* 或[size=+0]SHLIB_LIBS = /usr/lib/libncurses.so.5
    /*若是情况b, 将887行的SHLIB_LIBS = -lncurses


  • root@honli:~/Downloads/readline-5.2# make
  • root@honli:~/Downloads/readline-5.2# make install
  • [size=+0]root@honli:~/Downloads/readline-5.2# ldconfig

现在再查看readline的依赖库,libncurses.so.5已经链接进去了:
readelf -a /usr/lib/libreadline.so.5 | grep NEEDED
0x00000001 (NEEDED) Shared library: [libncurses.so.5]
0x00000001 (NEEDED) Shared library: [libc.so.6]

至此,readline成功安装!


2. 安装[size=+0]Beta software version for Linux:
可到gnu官网下载, 或到我的网盘下载共享文件:JLink_Linux_V443c.tgz
[size=+0][size=+0]#root [size=+0][size=+0]tar xvf JLink_Linux_V430c.tgz
[size=+0][size=+0][size=+0]#root: ~/JLink_Linux_V430$ cp libjlinkarm.s0.4* /usr/lib
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root :[size=+0][size=+0]~/JLink_Linux_V430$ rm -f /usr/lib/[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]libjlinkarm.so.4
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:[size=+0][size=+0]~/JLink_Linux_V430$ cd /usr/lib
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:~/usr/lib$ rm -f [size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]libjlinkarm.so.4
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:~/usr/lib$ ln -s [size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]libjlinkarm.so.43.4 [size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]libjlinkarm.so.4[size=+0][size=+0][size=+0][size=+0]
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:[size=+0][size=+0]~/JLink_Linux_V430$ ldconfig


[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]获取标准用户权限使用[size=+0]JLinkExe:
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:[size=+0][size=+0][size=+0][size=+0]~/JLink_Linux_V430$ cp 45-jlink.rules /etc/udev/rules.d/
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root [size=+0][size=+0]~/JLink_Linux_V430$ groupadd plugdev

[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root: [size=+0][size=+0]~/JLink_Linux_V430$usermod -a -G plugdev honli(我的账户)


运行试试:

[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:[size=+0][size=+0]~/JLink_Linux_V430$ ./JLinkExe[size=+0][size=+0] 或
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]#root:[size=+0][size=+0]~/JLink_Linux_V430$ ./start[size=+0][size=+0]
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]若输出如下信息:
[size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0][size=+0]SEGGER J-LINK Commander V4.

[size=+0]Compiled Jan 27 2012 19:11:22
Requirement out of time: sent 1 byte, recieve -19 bytes....
之类的信息,则说明Jtag硬件没有成功连上Jlink驱动程序。
这一般是Jlink驱动版本的问题,从官网上好像只能下载最新的驱动,而新版本内嵌的固件升级
了,与Jtag本身的固件不兼容,从而导致Jlink驱动识别不了Jlink的硬件。
可重新到我网盘下载旧版本的驱动:JLink_Linux_100618.tar
安装过程类似,解压,将库拷贝到/usr/lib/, 新建软链接..
#JLink_Linux_100618$ cp -f libjlinkarm.so.0.0 /usr/lib
#/usr/lib$ ln -s libjlinkarm.so.0.0 libjlinkarm.so.0
#/usr/lib$ ln -s libjlinkarm.so.0.0 libjlinkarm.so
#JLink_Linux_100618$ cp -f 45-jlink.rules /etc/udev/rules.d/
#JLink_Linux_100618$ ldconfig

要想在Shell的任何目录下运行Jlink,可将JLinkExe 拷贝到/usr/local/bin/ 目录下:
#JLink_Linux_100618$ cp -f JLinkExe /usr/local/bin/

#JLink_Linux_100618$ ./JlinkExe[size=+0]
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:

好了,至此为止吧!


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-456508-1-1.html 上篇帖子: ubuntu下/etc/motd问题 下篇帖子: ubuntu下嵌入式linux环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表