eclipse+gdbserver调试嵌入式linux应用程序

eclipse+gdbserver图形化调试嵌入式linux应用程序

开发环境

  • PC端Linux安装在VM虚拟机上,Ubuntu 12.04。
  • 嵌入式开发板->天嵌TQ210。
  • 开发板linux内核->2.6.35.7。

1.安装Eclipse

1.1 登录 http://www.eclipse.org/ide/,选择C/C++的IDE下载。

1.2 左边版本尽量选择新一点的,之前安装了Helios版本的发现实现不了。当前最新版本为Oxygen(时间:7/12/2017),右边的操作系统版本根据自己的虚拟机Linux操作系统选择,我这里是32位,选择了Linux 32-bit。

1.3 下载完安装包,通过SSH、samba、共享文件等方式拷贝到PC的Linux系统下。压缩包名字为eclipse-cpp-oxygen-R-linux-gtk.tar.gz。

1.4 进入压缩包所在目录,解压到该目录下。

# cd /home/ymq/arm_tools    
# tar -xzvf eclipse-cpp-oxygen-R-linux-gtk.tar.gz

1.5 在进入刚刚解压缩出来的eclipse文件夹启动eclipse应用之前,还要做一件事,就是安装java运行时的环境JRE。否则会出现以下错误提示。

1.6 在安装完JRE就可以启动eclipse软件了,进入解压出来的文件夹。

# cd /home/ymq/arm_tools/eclipse
./eclipse

扫描二维码关注公众号,回复: 1084672 查看本文章

2.PC端linux安装arm交叉编译工具

2.1 这里使用的是天嵌公司提供的交叉编译工具,在开发板资料的..\TQ210_CD\Linux平台工具文件下的4.4.6_TQ210_release_20120720.tar.bz2文件,拷贝到PC机的linux下解压缩。在此省略操作方法。

2.2 修改/etc/profile文件,把安装交叉编译链工具的bin目录设置到环境变量中。

# sudo vim /etc/profile

2.3 在profile文件的末尾,增加以下一行。我这里把交叉编译工具链解压缩到根目录。

export TQ210_CROSS=/opt/EmbedSky/4.4.6/bin
export PATH=$PATH:$TQ210_CROSS

2.4 回到终端,更新修改的/etc/profile文件。

# sudo source /etc/profile

2.5 检查是否已经安装好交叉编译连。出现如下图红色框,说明已经安装成功。

# amr-linux-gcc -v

3.PC端安装gdbclient

3.1 http://ftp.gnu.org/gnu/gdb/,下载arm-linux-gdb-7.5.tar.gz。

3.2 解压缩,配置、编译gdbclient。

# tar -xzvf arm-linux-gdb-7.5.tar.gz
# cd ./arm-linux-gdb-7.5/gdb-7.5
# ./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v(--target配置gdb的目标平台,--prefix安装路径)
# make && make install

3.3 配置、编译gdbserver。

# cd arm-linux-gdb-7.5/gdb-7.5/gdb
# ./configure --target=arm-linux --host=arm-linux(--target=arm-linux表示开发板平台,--host表示PC端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在PC端安装运行)
# make CC=/opt/EmbedSky/4.4.6/binarm-linux-gcc(这里的交叉编译链路径根据自己安装位置修改)

3.4 编译成功之后,在arm-linux-gdb-7.5/gdb-7.5/gdb文件夹下出现gdbserver应用,把它通过nfs或者其它的方式,拷贝到开发板中去,一般放在开发板linux系统的/usr/bin目录下。

此部分参考文献:http://blog.csdn.net/quyang0602/article/details/7368893

4.eclipse通过gdbclient连接开发板

4.1 打开eclipse,新建一个c语言工程。File->New->C Project。

4.2 填写工程名,选择工具链为Cross GCC。

4.3 Next。

4.4 Finish。

4.5 给新建工程添加源文件。选中工程,File->New Source File,输入文件名,记得加上后缀,Finish。

4.5 输入简单的打印,编译。

#include <stdlib.h>

int main(void)
{
    printf("Hello World!\r\n");
    return 0;
}

4.6 eclipse控制台输出编译结果。

4.7 Run->Debug Configurations,配置调试。

4.8

4.9 Debug Configurations->Debugger->Main,在GDB debugger选择gdb安装的路径,并制定arm-linux-gdb。

4.10 Debug Configurations->Debugger->Connection,类型选择TCP,主机地址即开发板的IP地址,端口号设置为10000。

4.11 配置完eclipse,保存之后关闭。接下来启动开发板的gdbserver。

4.12 用串口工具连接到开发板。通过nfs把PC端linux的eclipse工作文件夹挂载到开发板的/mnt/workspace目录下。<此操作在开发板上操作>。

[root@EmbedSky Debug]# mount -t nfs -o nolock 192.168.0.116:/home/ymq/workspace /mnt/workspace

4.13 进入/mnt/workspace/hello/Debug目录。<此操作在开发板上操作>。

[root@EmbedSky Debug]# cd /mnt/workspace/hello/Debug

4.14 启动gbdserver调试hello。

[root@EmbedSky Debug]# gdbserver :100000 hello
Process hello created; pid = 150
Listening on port 100000

4.15 eclipse启动调试。Run->Debug,启动调试。此步要在开发板启动了gdbserver之后执行,否则无法连接到开发板上,也无法出现如下提示。

4.16 eclipse成功连接到开发板上,按单步执行(F6),在开发板的终端可以看到输出。

[root@EmbedSky Debug]# gdbserver :10000 hello
Process hello created; pid = 141
Listening on port 10000
Remote debugging from host 192.168.0.116
Hello World!

4.17 点击Run->Terminate(Ctrl+F2),终止调试。

此部分参考文献:嵌入式Linux开发教程 (上册) .pdf《周立功出版的》,第十章第四节。链接:
http://www.zlg.cn/ipc/down/down/id/92.html

到此,完成了在eclipse上远程调试嵌入式linux应用程序,图形化的界面比命令行方便,清晰。但是对电脑硬件资源有一定要求,配置不高的话,虚拟机运行eclipse会比较卡。

猜你喜欢

转载自blog.csdn.net/u010561799/article/details/75093277