Jlink调试S5PV210

             本文主要说明的是在Linux下使用Jlink调试S5PV210,没有用到MDK,ADS1.2,RVDS等等Win下的集成开发环境。有由于芯片比较新,所以各方软件的兼容性都很难把握,以下步骤都是亲身实验出的结果,如果你对于为什么这样或者那样做很感兴趣那么每个步骤的软件换成其它版本的尝试。不再对软件版本进行介绍。(文中用到的所有软件都包含在:Jlink调试S5PV210.tar.gz


20141012更: 新出厂的Jlink一般不需要执行前两步了。

20150926更:更新软件包链接地址。


1.烧写最新固件

  这个步骤是在Windows下进行的,在“Jlink调试S5PV210/ Jlink固件”目录中,按照说明《JLINK_V8固件烧录和固件升级指导》烧写v8_ID-286331153.bin这个固件。

2.利用J-flash更新固件

  这个步骤也是在Windows下进行的,第一步是烧写最新的固件,这一步是让固件和Segger公司的软件进行一次磨合,软件选用Setup_JLinkARM_V462.exe,在Windows下安装这个软件,连接J-Link然后再打开的J-Flash。按下键盘上的“F2”(Check blank_具体的功能不重要),J-Flash会再次提示升级固件,点击“确定”!
Jlink调试S5PV210_第1张图片

Jlink调试S5PV210_第2张图片

Jlink调试S5PV210_第3张图片
  
        点击"确定",固件磨合完毕。


3.安装JLink_Linux_V462a

       源文件:Jlink调试S5PV210/JLink_Linux_V462a.tgz
       这个软件安装比较简单,找到一个合适的位置解压即可。

4.测试JLink_Linux_V462a

       测试JLink_Linux_V462a主要是判断能不能识别S5PV210的CPU核,先连接J-Link到S5PV210和到PC机。Jlink调试S5PV210是基于下图的所以要进行如下步骤。


       第一步:# lsusb                                  查看PC是否识别出J-Link,正常如下图所示:

Jlink调试S5PV210_第4张图片


       第二步:依次完成如图步骤                查看JLinkGDBServer是否能够识别J-Link和CPU核,正常如下图所示:

Jlink调试S5PV210_第5张图片

       至此,JLink_Linux_V462a已测试完毕。

5.编译安装arm-linux-gdb

      第4步中是搭建的gdb服务器,这一步要实现gdb调试工具。编译arm-linux-gdb需要先安装arm-linux-gcc-4.5.1(友善之臂的210光盘镜像中有)。
源文件:arm-linux-gdb-7.5.tar.gz
  步骤:
  1、将arm-linux-gdb-7.5.tar.gz拷贝的/usr/local/目录下(可以拷贝到任何你愿意的Linux目录下)
  2、解压arm-linux-gdb-7.5.tar.gz
  3、运行bulid-all编译安装脚本 
  4、添加 ":/opt/kangear/arm-linux-gdb/4.5.1/bin" 到 /etc/environment 中 重启系统后有效。
  5、运行:arm-linux-gdb -v。有如下打印信息说明安装成功。
Jlink调试S5PV210_第6张图片
      以上是自己动手编译安装,也提供了编译好的,解压后添到环境变量中,就可以直接使用(源文件为:Jlink调试S5PV210/arm-linux-gdb-already.tar.gz)。

6.安装Eclipse cdt 

       源文件:eclipse-cpp-helios-SR2-linux-gtk.tar.gz
       步骤:
       1> eclipse是java语言写的,要想正确运行它要先安装Java环境。
      步骤如下:
           root@kangear:/# sudo add-apt-repository ppa:webupd8team/java
           root@kangear:/# sudo apt-get update
           root@kangear:/# sudo apt-get install oracle-java6-installer
           ..............
           root@kangear:/# java -version
           java version "1.6.0_41"
           Java(TM) SE Runtime Environment (build 1.6.0_41-b02)
           Java HotSpot(TM) Server VM (build 20.14-b01, mixed mode)
           root@kangear:/# 

  2>tar xvzf eclipse-cpp-helios-SR2-linux-gtk.tar.gz 即可。


7. 导入Makefile工程到Eclipse

  1> 启动后,先File->New-> Makefile Project With Existing Code。
  2> 在打开的“Import Existing Code”对话框中点击“Browse...”,选择Jlink调试S5PV210/测试代码。
  3> Ctrl+B是“编译”,在项目名字上右击->"Clean Project"是清理工程。
  
  具体编译过程如下:

  至此,导入Makefile工程完毕。


8. 安装Eclipse 调试插件 Zylin Embedded CDT

        打开 eclipsec 后,选择 Help->install New Software...在 Work with 栏输入 http://opensource.zylin.com/zylincdt 如下图,依指示完成安裝。
Jlink调试S5PV210_第7张图片

Jlink调试S5PV210_第8张图片



Jlink调试S5PV210_第9张图片

Jlink调试S5PV210_第10张图片
(重启Eclipse后, Run->Debug Configrations会看到如图红圈中,说明安装成功

        至此,Zylin Embedded CDT安装完毕。

9. Eclipse调试S5PV210

        1>启动Eclipse后, 先选中一下工程1.leds_s(这一步必须要做) 然后Run->Debug Configrations 双击Zylin Embedded debug(Native)  Main栏如下图配置:
Jlink调试S5PV210_第11张图片
        2>Debuger栏如下配置:
Jlink调试S5PV210_第12张图片

        3>Commands栏中填入工程上的gdbinit文件中的内容:
Jlink调试S5PV210_第13张图片

        4>正常连接J-Link和S5PV210后,按照如下步骤进行调试:


        5>下边是调试窗口:
Jlink调试S5PV210_第14张图片

        这样就完成了S5PV210的调试。后续会有u-boot和linux内核的调试。
注意事项:
1. 对于 S5PV210要先将NandFlash擦除,然后以NandFlash方式启动才能正确检测到ARM核
2. 开机顺序是:先连接好Jlink两端,然后打开开发板,再启动JLinkGDBServer.
3. ISO中的gdbinit脚本中断点打到了main处,这也是一个失误,请以下边的脚本为准:
# connect to the J-Link gdb server
target remote localhost:2331
# Set JTAG speed to 30 kHz
monitor endian little
monitor speed 30
# Reset the target
monitor reset
monitor sleep 10
 
   
# Setup GDB for faster downloads
#set remote memory-write-packet-size 1024
monitor speed auto
break _start
load
continue
4. 这个版本的JlinkGDBServer连接很麻烦,链接10次能失败9次,经过研究找到一个既能调试S5PV210,用起来的又很爽的版本V4.3.4a。连接的成功率大大提高。如果你也类似问题,可以换以下版本。
下载地址: http://download.csdn.net/detail/suzilong11/3570431
安装方法,下载解压后进行目录中:
cp -d libjlinkarm.so.* /usr/lib
cp 45-jlink.rules /etc/udev/rules.d/
运行截图:
Jlink调试S5PV210_第15张图片
(用这个版本的JlinkForLinux可以不擦除NandFlash,也可以SD卡启动调试了,效率大大提高,这样就可以先用u-boot初始化好内存,程序直接在内存中调试,而非96k的iram中)

你可能感兴趣的:(gdb,Jlink)