摘要:

打开你仿真用的机器人的配置文化,这个应该是local_costmap_params.yaml

transform tolerance g改为1

    本文介绍了如何在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权限:
  1. root@jelline:~/Downloads# tar jxvf libusb-1.0.8.tar.bz2
  2. root@jelline:~/Downloads# cd libusb-1.0.8/
  3. root@jelline:~/Downloads/libusb-1.0.8#
    ./configure
  4. root@jelline:~/Downloads/libusb-1.0.8#
    make
  5. root@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选择下载,并安装,如下所示:
  1. root@jelline:~/Downloads# tar
    -zxvf readline-6.2.tar.gz
  2. root@jelline:~/Downloads/readline-6.2#
    ./configure
  3. root@jelline:~/Downloads/readline-6.2#
    make
  4. root@jelline:~/Downloads/readline-6.2#
    make install

2.3 下载Beta software version for Linux
    到http://www.segger.com/cms/jlink-software.html下载Beta software version
for 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.tgz
  • jelline@jelline:~/Downloads/JLink_Linux_V430$ cp libjlinkarm.so.4*
    /usr/lib
  • jelline@jelline:~/Downloads/JLink_Linux_V430$ ldconfig
上述是依README指示操作,会报如下错误:
  1. /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.4
  • root@jelline:/usr/lib# ln
    -s libjlinkarm.so.4.30.0 libjlinkarm.so.4
  • root@jelline:/usr/lib# ldconfig
       
       为了让标准用户有权使用JLinkExe(这句话是README翻译过来的),还需要进行如下操作:
  1. root@jelline:~/Downloads/JLink_Linux_V430# cp 45-jlink.rules
    /etc/udev/rules.d/
  2. root@jelline:~/Downloads/JLink_Linux_V430# groupadd plugdev
  3. root@jelline:~/Downloads/JLink_Linux_V430# usermod
    -a -G plugdev jelline
2.4 测试
按README文件,貌似已经装好了,但执行JLinkExe,仍提示如下错误:
  1. root@jelline:~/Downloads/JLink_Linux_V430#
    ./JLinkExe
  2. error 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.1
  • jelline@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:19
  • DLL version V4.30, compiled Jun 30 2011 15:53:15
  • Firmware: J-Link ARM V8 compiled Jun 21 2011 20:26:20
  • Hardware: V8.00
  • S/N: 20100214
  • Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull
  • VTarget = 3.306V
  • Info: TotalIRLen
    = 9, IRPrint
    = 0x0011
  • Info: Found Cortex-M3 r1p1, Little endian.
  • Info: TPIU fitted.
  • Info: FPUnit: 6 code
    (BP) slots
    and 2 literal slots
  • Found 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 Scan
  • Cortex-M3 identified.
  • JTAG speed: 100 kHz
  • J-Link>

3 使用JLink
在J-Link>输入"?",即给出命令列表。我在使用过程中,总体觉得Linux下JLink不够成熟,主要表现在资料太小、功能不易用、操作成功与否不提示(当然不排除不熟练的原因)。
3.1 下载loadbin
loadbin用于将二进制文件下载到目标存储器,语法如下:
  1. Syntax: loadbin <filename>, <addr>  //Load binary file into target memory
   下载之前需要设置下目标版的处理器,否则无法正常烧写,我的型号是STM32F103RBT6,但在指定的时候只指定为STM32F103RB,如下:
  1. J-Link>exec device = STM32F103RB
   有个麻烦,下载完没有明显提示成功与否,可以通过这样解决:在PC通过命令xxd查看待下载文件,下载进去通过JLink命令mem查看,判断这两者是否一样(只比较前面若干字节即可),若一样,则表示烧写成功。举个例子,把/bin/cp文件烧到板子:
  1. J-Link>loadbin /bin/cp, 0x08000000
  2. Loading binary file... [/bin/cp]
  3. Writing bin data into target memory @ 0x08000000.
  4. J-Link>mem 0x08000000,3f
  5. 08000000 = 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00
  6. 08000010 = 02 00 03 00 01 00 00 00 40 A1 04 08 34 00 00 00
  7. 08000020 = 04 73 01 00 00 00 00 00 34 00 20 00 09 00 28 00
  8. 08000030 = 1D 00 1C 00 06 00 00 00 34 00 00 00 34 80 04
  9. jelline@jelline:~$ xxd /bin/cp | more
  10. 0000000: 7f45 4c46 0101 0100 0000 0000 0000 0000 .ELF............
  11. 0000010: 0200 0300 0100 0000 40a1 0408 3400 0000 ........@...4...
  12. 0000020: 0473 0100 0000 0000 3400 2000 0900 2800 .s......4. ...(.
  13. 0000030: 1d00 1c00 0600 0000 3400 0000 3480 0408 ........4...4...
3.2 保存savebin
  1. Syntax: savebin <filename>, <addr>, <NumBytes>   //Saves target memory into binary file
   这里值得一提的是,参数<NumBytes>是十六进制,比如指定10,保存的是16个字节。我最开始误以为是十进制,我通过ls命令,发现文件大小与自己预期不一致,对比实际文件与预期大小,才发现这个问题。命令mem的<NumBytes>也是十六进制的。

ubuntuPC机安装JLink驱动的更多相关文章

  1. [异常解决] ubuntu上安装JLink驱动遇到的坑及给后来者的建议

    一.前言 最近将整个电脑格式化,改成了linux操作系统 希望这样能让自己在一个新的世界探索技术.提升自己吧- win上的工具用多了,就不想变化了- 继上一篇<ubuntu上安装虚拟机遇到的问题 ...

  2. JLINK固件,JLINK驱动和JLINK硬件版本之间的关系,以及固件升级方法

    初学者容易在这几个问题上面犯迷糊,这里简单的说说.   1. JLINK硬件版本首先说JLINK的硬件版本有V7,V8和V9,相信这一点大家应该都没问题,那怎么看自己手头的JLINK是哪个硬件版本呢, ...

  3. J-Link驱动下载和Hex程序下载

    J-LINK驱动下载 1.首先拥有硬件J-Link硬件. 2.安装J-Link驱动程序SEGGER 下载地址如下 https://www.segger.com/downloads/jlink/JLin ...

  4. windows安装oracle-odbc驱动错误原因

    在windows7上准备使用powerdesigner16连接oracle逆向生成表结构,确发现一直无法连接oracle,其原因是本机没有ODBC驱动. 第一步 安装oracle11g客户端,这里是具 ...

  5. NVIDIA显卡笔记本安装ubuntu驱动以及分辨率之详解

    随着对ubuntu的了解,突然想在自己的笔记本上装一个双系统.在网上查了安装方法之后,发现因为nvidia显卡的原因会出现一些问题,结果在我自己装了之后发现问题要比看到的多,再看了无数个帖子之后,最终 ...

  6. 笔记本1050ti显卡安装最新驱动版本 (415.27) 记录 NVIDIA显卡GeForce系列 (Ubuntu18.04)

    在Linux上安装驱动,这事情多半是跑CUDA程序的人才会搞的,多年前学CUDA时为这一步骤头疼的很,现如今已经比较熟悉了,今日给出一些记录. 首先,在NVIDIA官方网站上找到驱动下载页面: htt ...

  7. centos7 真实机安装后没有网卡解决办法

    我们在真实机安装完centos7版本后,会发现没有网卡,只有lo口 因为真实机不同你在虚拟机里面,这个时候我们不能连网,更加不要说配置什么静态ip了 是什么原因呢,是因为有些真实机安装了centos系 ...

  8. 真实的物理机安装Centos7系统后网卡只有lo没有eno1的解决办法:实际上是物理机未安装网驱动卡

    问题症状: 我真实的物理机安装Centos7系统后,在/etc/sysconfig/目录下查看,发现网卡只有lo没有eno1,出现该问题的实际原因是物理机未安装网驱动卡. 解决办法: 不多说了,让我们 ...

  9. 电脑连接到手机并安装手机驱动usb-driver

    设置真机开发环境需要执行下面几个步骤: 1.在应用的Manifest文件中声明应用是可调试的: 2.打开应用的调试支持: 对于通过Eclipse创建的应用,可以省略步骤2,因为在Eclipse IDE ...

随机推荐

  1. 元数据和DbUtils

    使用元数据可以在jdbc中获取数据库的定义,例如:数据库.表.列的定义信息. 在jdbc中可以使用: 数据库元数据.参数元数据.结果集元数据. 1.DataBaseMetaData对象 Connect ...

  2. SQlServer 从系统表 sysobjects 中获取数据库中所有表或存储过程等对象

    [sysobjects] 一.概述 系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等,该表中包含该数据库中的表 存储过程 视图等所有对象 在sqlserver2005,sql ...

  3. CSS盒子模型和IE浏览器

    CSS盒模型图解 下面是一幅关于应用了CSS的元素是如何显示它的尺寸的图示. 在本篇文章中,所有的浏览器在计算盒模型总宽度时处理margin属性的方式都是一致的,所以我们将更多的精力放在padding ...

  4. 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1>  简单介绍一下scanf函数   这是在 ...

  5. switch… case 语句的用法(二)

    总结来说:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.都不匹配找d ...

  6. .net 小问题集结

    1 .net中新建的项目,调试时,提示"由于未在web.config文件中启用调试,因此无法在调试模式下运行该页.您希望做什么?" 解决办法: 在web.config文件中,将&l ...

  7. xcode开发的6个小技巧

    Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...

  8. fwrite错误

    使用fwrite出错 f:\dd\vctools\crt_bld\self_x86\crt\srt\write.cline:69expression:_osfile(fh)&FOPEN 使用w ...

  9. 收藏的博客--PHP

    32位Win7下安装与配置PHP环境(一至三)  http://blog.csdn.net/yousuosi/article/details/9448903

  10. Apparmor——Linux内核中的强制访问控制系统

      AppArmor 因为最近在研究OJ(oline judge)后台的安全模块的实现,所以一直在研究Linux下沙箱的东西,同时发现了Apparmor可以提供访问控制. AppArmor(Appli ...