eclipse + cdt + gdb 进行arm linux 交叉调试

时间:2023-01-24 19:13:27

作者:Garfield_Trump

转自:http://blog.chinaunix.net/uid-20671208-id-1580649.html


   如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux平台时经常会抱怨没有一个好用的集成开发环境。和windows下常用的一些开发软件相比,Linux自带的一些开发环境使用起来要么界面和操作不够方便、友好,要么功能不全。其实我们完全可以在开源社区上找到操作方便,功能强大的开发环境。下面就向大家介绍一个能在Linux上运行,界面和功能与windows上同类软件相似的开发平台eclipse。

    eclipse是著名的跨平台的集成开发环境(IDE),最初是由IBM公司开发的替代商业软件Visual Age For Jave的下一代开发环境。2001年,IBM将eclipse贡献给开源社区,现在由eclipse基金会管理。2005年7月,eclipse稳定版3.1.0发布,目前最新的稳定版本是3.4。

    eclipse本身只是一个框架平台,最初主要用于java语言的开发。但是众多插件的支持使得eclipse同样可以用来开发其他的语言,如c/c++、c#、perl、cobol的等等。cdt(c/c++ development toolkit)就是支持c/c++开发的插件。许多软件开发商也以eclipse为框架推出了自己的集成开发环境。由于eclipse平台用java实现,所以运行时需要jre(java runtime environment)的支持。下面我们以ubuntu(linux发行版的一种)为例,介绍如何在linux上使用 eclipse+cdt来进行嵌入式Linux应用程序的开发。

一、安装软件

    在ubuntu下安装软件有两种方法:使用apt-get来自动安装或手动安装。用户使用自动安装非常方便,适合初学者。但是安装过程过于依赖资源网站的连接状况,可能需要耗费过多的时间。这里我们推荐手动安装的方式,花的时间比较短。

1、安装jdk

    jdk(java development kit)即java开发包,其中包含了运行eclipse所需要的jre. ubuntu缺省安装的gnu版本的jre运行效率不高,所以我们需要安装sun公司的jre. 首先从sun的网站上(http://java.sun.com/javase/downloads/index.jsp)下载安装包jdk-6u7-linux-i586.bin,然后如下进行安装:

    # mkdir -p /opt/java 
    # ./jdk-6u7-linux-i586.bin // 执行自解压文件,生成目录
    # mv jdk1.6.0_07 /opt/java // 把目录移到/opt/java下
    # cd /opt/java
    # ln -s jdk1.6.0_07 jdk 
    # mv /etc/alternatives/java /etc/alternatives/java.gnu
    # ln -s /opt/java/jdk/bin/java /etc/alternatives/java
    # export JAVA_HOME=/opt/java/jdk // 设置环境变量

2、安装eclipse和cdt

    从eclipse网站上(http://www.eclipse.org/)下载安装包eclipse-SDK-3.4-linux-gtk.tar.gz 和cdt-master-5.0.0.zip

    # cd /opt
    # tar zxvf eclipse-SDK-3.4-linux-gtk.tar.gz // 解压生成eclipse目录
    # export PATH=/opt/eclipse:$PATH
    # mkdir -p /opt/cdt
    # cd /opt/cdt
    # unzip cdt-master-5.0.0.zip
    # cp -r plugins/* /opt/eclipse/plugins/
    # cp -r features/* /opt/eclipse/features/

二、创建c/c++工程

    假设我们已经在linux上安装好了arm交叉工具链,下面介绍如何创建、交叉编译和调试c/c++工程。为了更直观的说明,我们截取了相关的图片:

进入eclipse安装路径后,运行eclipse

eclipse + cdt + gdb 进行arm linux 交叉调试

eclipse运行界面

eclipse + cdt + gdb 进行arm linux 交叉调试

创建c 工程

eclipse + cdt + gdb 进行arm linux 交叉调试

使用缺省的Linux GCC工具链

eclipse + cdt + gdb 进行arm linux 交叉调试

进入c/c++ 界面

eclipse + cdt + gdb 进行arm linux 交叉调试

添加源代码文件1

eclipse + cdt + gdb 进行arm linux 交叉调试

添加源代码文件2

eclipse + cdt + gdb 进行arm linux 交叉调试

编辑代码

eclipse + cdt + gdb 进行arm linux 交叉调试

设置工程属性,指定交叉工具链1

eclipse + cdt + gdb 进行arm linux 交叉调试

设置工程属性,指定交叉工具链2

eclipse + cdt + gdb 进行arm linux 交叉调试

设置工程属性,指定交叉工具链3

eclipse + cdt + gdb 进行arm linux 交叉调试 编译工程 eclipse + cdt + gdb 进行arm linux 交叉调试   已生成arm平台可执行代码 eclipse + cdt + gdb 进行arm linux 交叉调试

配置调试选项

eclipse + cdt + gdb 进行arm linux 交叉调试
  设置Debugger和 GDB debugger选项 eclipse + cdt + gdb 进行arm linux 交叉调试

设置连接类型为TCP,目标板的ip地址和调试端口号。端口号任意指定,通常大于1024(避免和系统所用端口号冲突)

eclipse + cdt + gdb 进行arm linux 交叉调试在开发板上运行程序,格式如上图所示:gdbserver是交叉调试辅助程序;192.168.0.150是主机的ip地址;1234是调试端口号,和eclipse调试选项里设定的端口号要一致eclipse + cdt + gdb 进行arm linux 交叉调试点击Debug,进入调试界面eclipse + cdt + gdb 进行arm linux 交叉调试

执行到断点

    eclipse的调试界面和操作和在windows下开发类似,相信到了这一步,大家已经可以很方便来进行应用程序的开发了。