建立jlink+arm-linux-insight+GDB Server调试环境

建立jlink+arm-linux-insight+GDB Server调试环境

一、方案

1、  linux gcc编译,windows adsiar调试。

2、  linux gcc编译,windows keilrealview调试。

3、  windowsadskeiliar编译调试。

4、  虚拟机linux gcc编译,然后运行gdb通过串口tcp远程调试win主机的target, 需要win端有一个gdbserver,如jlink gdbserver.

5、  linuxgcc编译,gdb+openocd+jlinkwiggler调试。

http://bbs.ednchina.com/BLOG_ARTICLE_280777.HTM

二、调试环境的建立

   这里采用第4点的方法来建立调试环境, 作者使用主机windowsXP+虚拟机ubuntu10.4系统。

1、主机windows下安装usb驱动,jlink驱动,里面会自带jlink gdb server

我使用Setup_JLinkARM_V424f.exe,网上下载,按步骤安装即可,安装后就可以识别到jlink

(1)J-Flash ARM V4.24f的使用。

  可使用该工具下载bin文件到开发板子。

  使用方法参考《jlink-jflash 手册(新).pdf

(2)gdb server

   在程序-> SEGGER -> J-Flash ARM V4.24f -> j-Link GDB Server 打开该工具,如开发板子链接成功,则如下显示:

留意:1Localhost only勾上后只能本机调试,对应ip127.0.0.1。如果在虚拟机arm-linux-insight连接GDB Server,则不需要勾选该项;2Little endian需要和编译器中设置的对应,不然无法断点和单步调试。

 

 

2、虚拟机ubuntu下安装arm-linux-gdb

(1)、下载gdb源码,

源码地址:http://www.gnu.org/software/gdb/download/

          ftp://ftp.gnu.org/gnu/gdb

最新版本为gdb-6.5.tar.bz2。下载到某个目录,笔者下载到/home/share下。但要注意,gdb的版本需要和croostool 相匹配。

(2)、下载完后,进入/home/share目录,配置编译步骤如下:

#tar jxvf gdb-6.5-tar-bz2

#cd gdb-6.5

#./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v 

(--target配置gdb的目标平台,--prefix配置安装路径,当然其他路径也可以, .跟下面配置一致即可,须在环境变量中声明,启动arm-linux-gdb需要,可更改/etc/profile~/.bash_profile~/.bashrc,添加export PATH=$PATH:/usr/local/arm-gdb/bin,这样可以找到路径).

#make    (这里的时候configure: error: no termcap library found
                 make[1]: *** [configure-gdb]
错误 1

解决方法:sudo apt-get install libncurses5-dev

安装完后,在makeOK了!)

#make install

 

3、安装insight 6.8.1

  (1)、安装较低版本的gcc

     #apt-get install gcc-4.2

     #ln -s gcc-4.2 gcc

     #gcc –v

(2)、下载insight源码,下载路径:ftp://sourceware.org/pub/insight/releases

 

 (3)、安装arm-linux-insight

     1) 安装X界面开发库 sudo apt-get install libx11-dev (包启在libgd2-xpm-dev

      2) 安装安装termcap库(gdb需要)sudo apt-get install libncurses5-dev

     3) 修改端口

         insight编译之前,要修改下源码,就是修改默认的端口,否则会是1000不能改的,因为我用的是jlink,其端口2331是不能修改的,所以只有修改gdb的端口了,找到/gdb/gdbtk/libaray/targetselection.itb ,查找1000,将其修改为2331jlink端口)

4) ./configure --target=arm-linux  --enable-sim  --prefix=/usr/local/insight

5)  make  make install

6) 最后添加其路径到系统中去,修改/etc/environment 添加/usr/local/insight/bin. 更新下此文件 source /etc/environment

 (4)arm-linux-insight的使用

     连接好硬件: jlink连接好开发板和pc

       打开windows端的jlinks gdb server ,如果硬件连接成功,jlinkTagget 后面会变绿色, waiting for connection是红色的

 linux端打开arm-linux-insight ,选择file->open,选择打开你刚刚编译好的一个elf格式的中间文件,选择file->targetsetting

    TargetRemote/TCP

    Hostname192.168.1.172     

    Port:2331

    注意:这里的hostname指的是你的windowsipwindowsip和虚拟机的ip要在同一个网段,主机与虚拟机的连接采用bridged

而且要保证主机与虚拟机可以正常通讯。

    设置好之后点击Run->connect to target,连接成功的话gdbserverGDB 后面会显示Connected to 192.168.xxx.xxx,这个是你虚拟机的ip,到这里就ok了.

三、问题集锦:

1、使用insight连接不到GDB Server的原因如下:

 

Localhost only的勾去掉即可,当选择该项时,表示只能本地主机连接,使用127.0.0.1ip地址,虚拟机linuxl连接不到。

 

2、不能断点调试的原因:

端对齐没选择正确导致,需要选择Little endian

  另外,在虚拟机insight需要先把调试的elf 选择Run->download. 然后才可以设置断点,进行调试等动作。

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(建立jlink+arm-linux-insight+GDB Server调试环境)