本文用到的jlink插件在这里

http://download.csdn.net/detail/king_bingge/5879179

两个先决条件:

1、已经成功安装eclipse,考虑到版本兼容问题,不适用redhat6自带的eclipse。如何安装,之前的博文已有提及,不再赘述;

2、已经成功,安装arm-linux-gdb调试工具,之前的博文也已经安装完成。


接下来开始搭建调试环境

考虑到有时候程序出现bug在所难免,所以我们不得不对程序进行调试,为了更加方便的开发,我们统一使用在linux环境下面对程序进行调试。


一、硬件连接

1、OK6410目标板电源线、JTAG线、串口线分别接好;

2、开启虚拟机后,将右下角的usb口、串口  connect上;

3、将开发板设置为SD启动,然后利用我们SD卡中的mmc引导程序对nand flash进行擦除;

4、将开发板设置为nand flash启动。


第一部分到此完毕。


二、jlink软件安装

1、执行命令 tar  zxvf  JLink_Linux_V434a.tgz  并且进入该目录;

2、然后执行命令 cp -d libjlinkarm.so.4* /usr/lib -f  将库复制到lib里面,如下图示:


3、最后执行  ./JLinkGDBServer  此时会出现正常连接上jlink的提示,并且会显示ID和ARM11的字样。

到这里JLINK这部分完毕,注意要始终保持jlink连接,方便后续调试。


4、安装插件(这一步很关键啊)

启动eclipse,进入下面的界面


进入之后一次按下面的顺序,进行设置


最后finish,注意这一步必须要求虚拟机能够上网啊,这个必须保证了。安装插件是在线安装的。

三、eclipse工具配置

1、启动eclipse,进入下面的界面


2、建好工程后,会出现下面的界面:



3、工程建立完毕,接下来就是配置了,上图


4、然后进入配置界面依次按照图示顺序

A 双击红色字体‘1’然后会出来LED Default选项

B 点击红色字体‘2’然后在右边进行设置

C 在下面一个browse那里选择你要调试的文件,记住一定是elf格式的

将Debugger下面的 GDB debugger 改为 arm-linux-gdb

E command里面的‘initial’command   就要输入我们的初始化目标板的代码了,我是OK6410的代码如下

# tiny6410_config
# 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
#
# CPU core initialization (to be done by user)
#
# Set the processor mode
monitor reg cpsr = 0xd3
#config MMU
#flush v3/v4 cache
monitor cp15 7, 7, 0, 0 = 0x0
#/* flush v4 TLB */
monitor cp15 8, 7, 0, 0 = 0x0
#disable MMU stuff and caches
monitor cp15 1, 0, 0, 0 =0x1002
#Peri port setup
monitor cp15 15, 2, 0, 4 = 0x70000013
#disable watchdog
monitor MemU32 0x7e004000  =  0x00000000
monitor sleep 10
#disable interrupt
monitor MemU32 0x71200014  =  0x00000000
monitor MemU32 0x71300014  =  0x00000000
monitor MemU32 0x7120000C  =  0x00000000
monitor MemU32 0x7130000C  =  0x00000000
monitor MemU32 0x71200F00  =  0x00000000
monitor MemU32 0x71300F00  =  0x00000000
#set clock 
monitor MemU32 0x7e00f900  =  0x0000801e
monitor MemU32 0x7e00f000  =  0x0000ffff
monitor MemU32 0x7e00f004  =  0x0000ffff
monitor MemU32 0x7e00f020  =  0x01043310
monitor MemU32 0x7e00f00C  =  0xc2150601
monitor MemU32 0x7e00f010  =  0xc2150601
monitor MemU32 0x7e00f024  =  0x00000003
monitor MemU32 0x7e00f014  =  0x00200102
monitor MemU32 0x7e00f018  =  0x00000000
monitor MemU32 0x7e00f01C  =  0x14000007
#config sdram
monitor MemU32 0x7e00f120  =  0x00000008
monitor MemU32 0x7e001004  =  0x00000004
monitor MemU32 0x7e001010  =  0x0000040f
monitor MemU32 0x7e001014  =  0x00000006
monitor MemU32 0x7e001018  =  0x00000001
monitor MemU32 0x7e00101c  =  0x00000002
monitor MemU32 0x7e001020  =  0x00000006
monitor MemU32 0x7e001024  =  0x0000000a
monitor MemU32 0x7e001028  =  0x0000000c
monitor MemU32 0x7e00102c  =  0x0000018f
monitor MemU32 0x7e001030  =  0x0000000c
monitor MemU32 0x7e001034  =  0x00000002
monitor MemU32 0x7e001038  =  0x00000002
monitor MemU32 0x7e00103c  =  0x00000002
monitor MemU32 0x7e001040  =  0x00000002
monitor MemU32 0x7e001044  =  0x00000013
monitor MemU32 0x7e001048  =  0x00000013
monitor MemU32 0x7e00100C  =  0x00010012
monitor MemU32 0x7e00104C  =  0x00000b45
monitor MemU32 0x7e001200  =  0x000150f8
monitor MemU32 0x7e001304  =  0x00000000
monitor MemU32 0x7e001008  =  0x000c0000
monitor MemU32 0x7e001008  =  0x00000000
monitor MemU32 0x7e001008  =  0x00040000
monitor MemU32 0x7e001008  =  0x00040000
monitor MemU32 0x7e001008  =  0x000a0000
monitor MemU32 0x7e001008  =  0x00080032
monitor MemU32 0x7e001004  =  0x00000000
# Setup GDB for faster downloads
#set remote memory-write-packet-size 1024
set remote memory-write-packet-size 4096
set remote memory-write-packet-size fixed
monitor speed 12000
break _start
load

具体代码的意思现在还不了解,先用着。

配置完成后选择debug。

最后,在桌面上创建一个软链接吧!  ln -s /opt/eclipse/eclipse    /home/xiaobing/Desktop

四、进行调试

接下来就可以进行调试了,接下来大家就尽情发挥吧~~~  有不懂的可以详谈。。。。


Logo

更多推荐