转自:http://blog.chinaunix.net/uid-25424552-id-3415988.html
申明:
1.本文所讨论的硬件平台基于海思3716M芯片(ARM内核)的机顶盒;
2.宿主机信息:Linux version 2.6.18-92.el5 (gcc version 4.1.2 20071124 (Red Hat 4.1.2-41))
3.交叉编译工具:
arm-hisiv200-linux
一、软件安装
1、
安装eclipse
eclipse本身只是一个框架平台,最初主要用于
java语言的开发。但是众多插件的支持使得
eclipse同样可以用来开发其他的语言,如
c/c++、
c#、
perl、
cobol等等。
cdt(c/c++
development toolkit)就是支持
c/c++开发的插件。由于
eclipse平台用
java实现,所以运行时需要
jre(java
runtime environment)的支持。因此整个
eclipse的安装过程分为三个步骤:
1)、安装JDK
A、判断当前环境下是否已经安装了
jdk:
# java -version
-bash: java: command not found
B、如出现以上提示则说明当前系统还没安装
jdk,首先从
sun的网站上
(http://java.sun.com/javase/downloads/index.jsp)下载安装包
jdk-6u7-linux-i586.bin,然后如下进行安装:
# mkdir -p /usr/local/java //将安装包拷贝到该目录下
#cd /usr/local/java # ./jdk-6u7-linux-i586.bin
安装完成后,再进行确认:
# java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)
至此
jdk安装完成。
2)、下载安装eclipse
从
eclipse网站上
(http://www.eclipse.org/)下载安装包
eclipse-SDK-3.4-linux-gtk.tar.gz,然后执行以下命令:
# mkdir -p /usr/local/eclipse //将下载安装包拷贝到该目录下
# cd /usr/local/eclipse
# tar –zxvf eclipse-SDK-3.4-linux-gtk.tar.gz
解压完毕后,会在当前目录下出现一个名为
eclipse的目录,进行以下命令:
# cd usr/local/eclipse/eclipse
# ./eclipse
若成功执行,将出现如下界面:
至此
eclipse安装完成。
3)、安装下载CDT
步骤
2中启动的
eclipse是不支持
c程序开发的,因此必须将其关闭,安装
cdt插件。
从
eclipse CDT网站上(
http://www.eclipse.org/cdt/)下载
cdt-master-5.0.0.zip,安装:
# mkdir –p usr/local/eclipse/cdt //将安装包拷贝到该目录下
# cd usr/local/eclipse/cdt
# unzip cdt-master-5.0.0.zip
# cp -r plugins/* usr/local/eclipse/eclipse/plugins/
# cp -r features/* usr/local/eclipse/eclipse/features/
再次启动
eclipse,便可进行
c程序开发调试了。
2、
安装gdb和gdbserver
想要通过
eclipse交叉调试我们的机顶盒,还必须
gdb和
gdbserver这两个工具;其实
eclipse只是对
gdb的进行了一层图形化的封装,让用户更方便与调试操作。注意以下安装过程,假设你的
linux平台上已经正确的安装了交叉编译链,并且已经正确的设置了环境变量;以下的安装过程是针对
hisiv200工具链进行说明的,其他工具链只需修改target和host参数。
1)、安装包下载
从
GNU网站上(
http://www.gnu.org/software/gdb/download/)下载
gdb-7.3a.tar.bz2。执行以下操作:
# mkdir –p usr/local/gdb
//将安装包拷贝到该目录下
# tar –jxvf gdb-7.3a.tar.bz2
# ls
gdb-7.3 gdb-7.3a.tar.bz2
2)、编译安装gdb
gdb是运行在宿主机
(x86平台
)上的,但是它必须保证能跟机顶盒
(海思
arm平台
)上的
gdbserver进行正常通信,所以编译前要进行如下配置:
# mkdir –p /usr/local/hisi-arm-gdb
# cd usr/local/gdb/gdb-7.3
# ./configure --target=arm-hisiv200-linux --prefix=/usr/local/hisi-arm-gdb
……(配置过程)
#make
……(编译过程)
#make install
安装完成后,在
/usr/local/hisi-arm-gdb便可看到三个目录:
bin lib share。其中
bin目录里面存放有我们需要的
gdb工具,
arm-hisiv200-linux-gdb。
至此
gdb编译安装完成。
2)、编译安装gdbserver
gdbserver是运行在机顶盒上的,所以必须用与编译机顶盒程序配套的交叉编译链对其进行配置编译,例如对于用
hisiv200编译链编译的程序,一般用以下语句配置编译
gdbserber:
# cd usr/local/gdb/gdb-7.3/gdb/gdbserver/
# ./configure --host=arm-hisiv200-linux
# make
编译完成后,在该目录下便看到我们所需要的
gdbserver工具。
二、eclipse工程构建
1、启动eclipse:
2、新建工程:
3、选择C Project 弹出如下窗口,” project types”选择”Makefile
project”,
“Use default location”不选,手动指定工程目录,”project
name”栏键入工程名,点击finish完成:
4、 创建编译目标, Make Tagert选中app目录右键单击,弹出列表选择”Add
Make Target” ;
5、 在”Create a new Make Target”框的”Target
Name”栏和”Make Target”栏都输入”all”,单击”create“
6、 app目录下出现”all”目标:
7、 编译,双击app目录下的”all”目标,便可进行编译:
三、交叉调试
1、配置eclipse
选择”run”选项中的“Debug
Configurantions”选项,弹出” Debug Configurantions”框。
双击” Debug Configurantions”框中的”C/C++
Local Application” ,右边栏”main”选项中,按如下所示键入信息:
右边栏,选择“debugger“选项,键入如下信息,Debugger 选择 gdbserver Debugger ,GDB debuger 选择在步骤一中编译的gdb,即arm-hisiv200-linux-gdb:
选择”Debugger Options”中的”Connection”选项,
输入以下信息,点击Apply,单击close,完成配置。
2、在机顶盒中运行gdbserver
将步骤一中编译的
gdbserver,拷贝至机顶盒运用程序所在的目录下(假设是
/mnt目录)然后执行以下命令:
3、eclipse中运行debugger
选择”run”选项中的“Debug
Configurantions”
选项,弹出” Debug Configurantions”框,选择demo,单击Debug。
eclipse进入debug模式:
至此,在
linux下基于
eclipse的整个远程交叉调试环境搭建完毕。