|
本帖最后由 FSL_TICS_Rita 于 2014-10-8 17:37 编辑
看完此文章,你将能够在主机Ubuntu12.10中调试开发板中运行的程序。
包含要点:
1. Ubuntu12.10 Eclipse安装
2. Eclipse C/C++开发
3. 交叉编译
4. GDB远程调试i.MX6开发板
1. 安装JDK
1)Eclipse基于java,首先需要安装JDK,在官网下载最新的JDK8u20。
http://www.oracle.com/technetwor ... nloads-2133151.html
2)解压文件
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk-8u20-linux-i586.tar.gz /usr/lib/jvm/
$ cd /usr/lib/jvm/
$ sudo tar -zxf jdk-8u20-linux-i586.tar.gz
$ rm ./jdk-8u5-linux-i586.tar.gz
3)配置java运行环境变量
$ sudo vi /etc/environment
在environment中修改PATH,追加JDK路径,添加CLASSPATH与JAVA_HOME后如下:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.8.0_20/bin"
CLASSPATH="/usr/lib/jvm/jdk1.8.0_20/lib"
JAVA_PATH="/usr/lib/jvm/jdk1.8.0_20"
如果你的系统之前装过OpenJDK,你需要作如下操作:
告诉系统,我们现在使用的是sun的JDK,而非OpenJDK了:
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_20/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_20/bin/javac 300
$ sudo update-alternatives --config java
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自动模式
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手动模式
2 /usr/lib/jvm/jdk1.8.0_05/bin/java 300 手动模式
要维持当前值请按回车键,或者键入选择的编号:2
4)测试当前java配置是否正确
$ javac –version
javac 1.8.0_20
$ java –version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Server VM (build 25.20-b23, mixed mode)
如果能出现上面的信息,恭喜你JDK安装成功。
2. 安装Eclipse
1)下载 Eclipse
从http://www.eclipse.org/downloads ... p;release=undefined下载合适版本,比如这里我们下载的:Eclipse IDE for C/C++ Developers。这个版本已经自带CDT插件,不需要自己安装。同理,如果你想开发java,下载这个页面上Eclipse Standard 4.4即可。
下载下来的文件名为:eclipse-cpp-luna-R-linux-gtk.tar.gz
2)解压安装
将安装包移动到安装目录
$ sudo mv eclipse-cpp-luna-R-linux-gtk.tar.gz /usr/lib/
进入安装目录
$ cd /usr/lib/
解压安装包
$ sudo tar -zxvf eclipse-cpp-luna-R-linux-gtk.tar.gz
删除安装包
$ sudo rm ./ eclipse-cpp-luna-R-linux-gtk.tar.gz
解压后是个名为eclipse的文件夹
文件夹中有两个文件需要我们注意:
eclipse Eclipse的启动程序,打开即可运行Eclipse
icon.xpm Eclipse图标,后面创建快捷方式时需要用到
3)测试Eclipse
$ cd /usr/lib/eclipse
$ ./eclipse
出现下面的Workspace Launcher表示安装成功。
每次从这个路径启动Eclipse太麻烦,下面我们在桌面快捷菜单上建立一个Eclipse的快捷方式,这样会方便很多。
4)创建Eclipse快捷方式
在/usr/share/applications目录下新建一个文件eclipse.desktop,加入下面的内容,然后加上可执行权限。
$ sudo chmod +x eclipse.desktop
eclipse.desktop内容为:
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=/usr/lib/eclipse/icon.xpm //程序图标文件,改为你自己的路径
Exec=/usr/lib/eclipse/eclipse //eclipse程序,改为你自己的路径
Terminal=false
Categories=Development;IDE;C/C++;
这时候就能在搜索框里找到Eclipse程序了,还可以将Eclipse图标拖到旁边的快捷启动栏上,方便下次启动。
至此,IDE开发环境搭建好了,下面我们来看看gdb调试环境的搭建。
3. gdb和gdbserver
远程调试linux应用程序,需要两个程序:一个是运行在x86平台的arm-linux-gdb,另一个是运行在开发板上的gdbserver。
飞思卡尔官方编译工具已经带了主机端的gdb调试工具,使用arm-linux-gdb –v即可查看到。
注意到此gdb版本为7.2的,因此为了保证最大程度的兼容性,在开发板上运行的gdbserver也定为7.2版本。
当前官方gdb最新版本为7.8,地址:ftp://mirrors.kernel.org/sourceware/gdb/releases/
通过上面的地址选择下载7.2a版本。
编译gdbserver,进入gdb/gdbserver
$ cd gdb/gdbserver/
$ ./configure --target=arm-linux --host=arm-linux
$ make CC=arm-linux-gcc
将生成的gdbserver文件放入开发板/usr/bin/目录下(也可以放入其他目录,shell能找到即可)。
前期工作都准备好了,下面看看怎么在Eclipse下调试C程序。
4. 调试环境搭建
新建一个helloworld的工程,这个工程采用交叉编译生成i.MX6的程序映像,并且使用gdb远程调试。
1)打开Eclipse,这里的Workspace默认即可。
2)新建一个C工程,File->New->C Project
3)因为我们要编译运行在i.MX6上的程序,所以选择交叉编译Cross GCC。点击Next。
4)这里默认即可,点击Next
5)这里很重要
Cross compiler prefix填入arm-linux-
Cross compiler path填入交叉编译器的路径,飞思卡尔ltib工具包默认将交叉编译器安装在这个路径下:
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin
6)点击Finish,在右侧的Project Explore会出现一个helloworld的文件夹。新建测试文件。
新建一个helloworld.c源文件,填入如下代码。
#include <stdio.h>
int main()
{
printf("Hello world1!\n");
printf("Hello world2!\n");
return 0;
}
7)编译测试
Project->Build All,如果在下面Console界面中没有错误且出现arm-linux-gcc字样,说明交叉编译成功。
其实到这里,你可以将生成的文件helloworld放入开发板测试了。下面我们开始配置远程gdb调试功能。
使用file命令查看helloworld的属性,可以看到文件为arm可执行文件,进一步确认编译的正确性。
8)gdb调试配置
点击工程图标绿色小虫子旁边的箭头,选择Debug Configurations
双击右侧第一个菜单C/C++ Application,会出现一个helloworld Debug的标签。
main标签配置,按照顺序配置
配置Debugger标签,注意第三个标签选择正确的gdb client端。
将编译好的程序Debug/helloworld放到开发板中。运行:
$ gdbserver 192.168.1.155:10000 helloworld
192.168.220.128为客户端IP地址,10000为监听端口
设置断点,直接在行号前面双击即可。这里设置了三个断点。
选择之前配置的Debug开始调试。
这个不用管,点击YES。出现Debug调试界面。
i.MX6上也出现了连接提示。
F6下一步,可以看到调试功能和windows下的VS基本一样。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|