eclipse下使用gdb+j-link调试总结

使用J-Link Command工具装载程序并运行的方法:

首先将J-LINK与目标机连接好并运行J-Link Command可见到如下信息:

 

然后输入h命令查看目前目标机的CPU处于何种模式(看到处于SVC Mode表示连接成功):

 

然后设置J-LINK的速度,输入:speed 2000(表示设置为2000KHZ2MHZ):

 

然后就可以load程序到目标机器了,命令:loadbin xxx.bin 189860(其中18986016进制的要装载目标机器的地址):

 

成功装载入目标机器后,设置PC指针的当前值,命令:setpc 189860(其中18986016进制地址),则PC将会指向189860地址去取第一条指令运行:

 

设置好PC后,最后运行,命令:g,此时PC将会指向189860地址去取第一条指令并运行:

 

 

 

 

ECILPSE中可以支持GDB调试来进行linux内核或者应用调试并且非常方便,需要前提:JTAG口线引出,J-LINK调试工具以及在ECILPSE中安装一个叫 Zylin Embedded CDT  4.18.1   com.zylin.cdt.feature.feature.group工具即可进行调试了。

关于Zylin Embedded CDT安装方法如下:

ECILPSEhelp->about eclipse->installation details,界面如下:

进入后可见如下界面则表明已经安装了Zylin Embedded CDT工具:

 

最后一个显示的Zylin Embedded CDT

准备工作都OK后则可以新建一个工程进行调试了:

以一个makefile工程为例,如下图:

 

当安装好Zylin Embedded CDT后会在ECLIPSE界面出现一个虫子的图标,点击这个图标->Debug Configurations如下图:

然后进入后如下图,自己编写一个调试名字stage_debug,project(optional)下选框中选择需要调试的工程stageii,C/C++ Application下选框选择本工程编译生成的ELF文件:

 

再选择Ddbugger选项,入下图,在Debugger中选择Embedded GDB,在STOP ON STARTUP AT选择你期望第一个断点停留的函数(一般为main函数或者汇编的_start函数),在GDB debugger中选择工具链中的gdb工具(这里使用的是arm-unknow-linux-gun-gdb工具)

 

再点击Commands选项,如下图,initalize commands中写的是GDB工具能识别的舒适化命令,包括设置远程目标板代理服务器IP地址,CPU格式,J-LINK运行速度,装载后PC指针指向地址等命令,Run commands中写运行时断点位置,断点执行后的行为:

 

至此ECLIPSE中的GDB调试环境已经配置好了,由于是远端的目标机,所以需要使用J-LINK服务代理,架构为在目标机所在主机上开启J-LINK GDB Server服务并保证J-LINK GDB Server与目标板已经通过J-LINK连接成功了,如果连接成功则如下图,由于是远程调试,故Localhosr only选项一定不能勾选,此时能检测到TargetARM11.Code ld:0x07b3617f

 

至此就可以进行调试了!

 

另外如果出现"${workspace_loc:/libwireless/include}"

表现为windows下的目录格式如:e:\xxx\xxx,则出现src/mg323.d:1: *** multiple target patterns.  Stop.

make: *** [libmg323.so] Error 2错误

 

解决办法是将E:/XXX/XXX改为/cygdrive/e/xxx/xxx

你可能感兴趣的:(eclipse下使用gdb+j-link调试总结)