linux环境:VMware + ubuntu12.04
ARM板:iTOP4412 (cortex A9)
本篇参考博文https://blog.csdn.net/u010561799/article/details/75093277和https://blog.csdn.net/linuxarmsummary/article/details/44975495
搭建流程:
一、Linux系统上(ubuntu)安装eclipse
1)到官网下载jdk-8u181-linux-x64.tar.gz源码包,解压,配置环境变量
tar zvxf jdk-8u181-linux-x64.tar.gz
vim /etc/profile
JAVA_HOME=/home/jiangyu/software/eclipse/jdk1.8.0_181 #jdk路径
JRE_HOME=$JAVA_HOME/jre #注意 如果jdk11解压后是没有jre目录的所以这里直接配成$JAVA_HOME/即可 去掉jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
2)官网下载linux版本的eclipse源码包eclipse-cpp-oxygen-3a-linux-gtk-x86_64.tar.gz,解压,将可执行程序eclipse软链接到/usr/sbin/下面,使全局可用。
二、配置、编译、安装gdbclient
# tar -xzvf gdb-8.2.tar.gz
# cd ./gdb-8.2
# ./configure --target=arm-linux --prefix=/usr/local/arm-gdb(--target配置gdb的目标平台,--prefix安装路径)
# make (若出现gcc版本过低错误,升级gcc版本即可)
#make install
三、配置、交叉编译gdbserver (运行在在ARM开发板端)
编译gdb依赖库ncurses:
下载最新版本的源码包
配置:
./configure --host=arm-none-linux-gnueabi --prefix=$PWD/_insatll --without-ada --enable-termcap --with-shared
编译:make
安装:make install (_install/lib目录下生成libncurses.so库)
新建gdbserver目录,拷贝一份源码到下面,再进行解压(避免弄脏之前gdb,否则编译不通过)
# ./configure --target=arm-linux --host=arm-linux(--target=arm-linux表示开发板平台,--host表示PC端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在PC端安装运行)
# make CC=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc(这里的交叉编译链路径根据自己安装位置修改)
编译完成后,拷贝gdbserver至开发板。
四、调试测试
eclipse通过gdbclient连接开发板
1)打开eclipse,新建一个c语言工程。File->New->C Project。
2)填写工程名,选择工具链为Cross GCC。
3) Next。
4)Finish。
5) 给新建工程添加源文件。选中工程,File->New Source File,输入文件名,记得加上后缀.c,Finish。
6) 写入代码,编译。
7) Run->Debug Configurations,配置调试。
9) Debug Configurations->Debugger->Main,在GDB debugger选择gdb安装的路径,并制定arm-linux-gdb。
10 )Debug Configurations->Debugger->Connection,类型选择TCP,主机地址即开发板的IP地址,端口号设置为10000。
11) 配置完eclipse,保存之后关闭。接下来启动开发板的gdbserver 。
12)用串口工具连接到开发板。将要调试的程序放到目标板或者通过nfs把PC端linux的eclipse工作文件夹挂载到开发板的/mnt/workspace目录下。<此操作在开发板上操作>。
[root@jy]# mount -t nfs -o nolock 192.168.31.91:/home/jiangyu/ /mnt/workspace
13) 进入待调试程序目录或/mnt/workspace/目录
14) 启动gbdserver调试待调试程序(例hello).
[root@jy]# gdbserver :100000 hello
Process hello created;
pid = 150 Listening on port 100000
15 )eclipse启动调试。Run->Debug,启动调试。此步要在开发板启动了gdbserver之后执行,否则无法连接到开发板上,也无法出现如下提示。
16) eclipse成功连接到开发板上,按单步执行(F6),在开发板的终端可以看到输出。
17) 点击Run->Terminate(Ctrl+F2),终止调试。