之前我们介绍过keil的安装,但是并没有使用keil去调试程序,主要原因是因为我们编写的makefile文件无法在keil中使用。而且,我们编写的start.S在keil中也会报个各种错误。但是作为一个程序员,调试程序是并不可少的。这节将带领大家学习如何在Linux上使用jlink调试Mini2440开发板。
一、ubuntu安装Jlink驱动
1.1 下载jlink
在JLink官网下载deb后缀,https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack:
需要注意的是这里我没有下载最新的,我下载的版本是JLink_Linux_V616_x86_64.deb。
1.2、上传到linux服务器
下载完成之后,利用samba服务器上传至linux服务器。
1.3、安装程序
在ubuntu可视化界面上,利用命令安装:
dpkg -i JLink_Linux_V616_x86_64.deb
安装好jlink驱动以后,默认是安装在/opt/SEGGER/Jlink下面.
在虚拟机上面,把jlink连接到虚拟机里面:
然后运行JLinkExe程序,如果看到JLInk连接的相关信息,说明安装驱动成功:
cd /opt/SEGGER/JLink JLinkExe
二、安装Eclipse IDE
2.1 安装jdk
JDK的安装我就不介绍了,相信大家都很熟了,看我这篇博客:大数据 -- Hadoop集群环境搭建。
2.2 安装eclipse
到官网下载eclipse,注意需要下载Linux版本:
解压就好了:
mv eclipse-jee-2021-06-R-linux-gtk-x86_64.tar.gz /usr/lib cd /usr/lib tar -zvxf eclipse-cpp-2018-09-linux-gtk-x86_64.tar.gz
2.3 运行eclipse
登录ubuntu,通过可视化页面终端运行:
cd /usr/lib/eclipse ./eclipse
此时可能会出现jre相关的error,进入eclipse安装路径 ,加入jdk bin的路径,创建jre文件夹:
mkdir jre cd jre #创建jdk链接: ln -s /usr/java/jdk1.8.0_231/bin bin
2.4 eclipse安装Zylin Embedded CDT
去官网下载CDT,注意需要下载eclipse对应版本,这里我下载的9.55版本:
tar -zxvf org.eclipse.cdt-3.1.2-linux.x86.tar.gz
解压后将features和plugins文件夹下的所有文件拷贝到/usr/lib/eclipse下对应的目录下即可。
2.5 配置编译器
新建一个项目,file -> new ->C/C++ project :
选择C Managed Build,然后点击Next,填写项目名称,选择Crosee GCC:
然后一直Next直至安装完成。
在左侧项目栏右击项目名称 ->选择properties,在C/C++build-->Settingss里,把Tool Settings中的command都改成gcc、as改成arm-linux-gcc,arm-linux-as,改完后编译一下:
2.6 配置编译arm gdb
下载gdb gdb下载 ,版本选择7.2a(gdb-7.12.1.tar.gz):
wget http://ftp.gnu.org/gnu/gdb/gdb-7.12.1.tar.gz
解压缩:
tar -zxvf gdb-7.12.1.tar.gz
配置:
cd gdb-7.2/ ./configure --target=arm-linux --program-prefix=arm-linux- --prefix=/opt/gdb/
注:--target=arm-linux意思是说目标平台是运行于ARM体系结构的linux内核;--program-prefix=arm-linux-是指生成的可执行文件的前缀,比如arm-linux-gdb,--prefix是指生成的可执行文件安装在哪个目录,这个目录需要根据实际情况作选择。如果该目录不存在,会自动创建,当然,权限足够的话。
编译安装:
make make install
幸运的话,会在--prefix指定的目录下生成三个子目录:bin、lib、share,我们需要的arm-linux-gdb就在其中的bin目录下。( 在/opt/gdb目录下呢)
三、调试
3.1 配置调试选项
- 进入Run菜单 -> Debug Configurations -> Zylin Embedded debug(Native)
- 新建一个调试配置;
- 进入main选项卡,选择要调试的C/C++工程;
- 进入debugger选项卡,选择交叉编译的gdb debugger:arm-linux-gdb;
- 进入commands选项卡,在初始化命令里填写目标板的IP和端口,例如target remote 192.168.0.151:2345;ip是板子的ip
参考文章:
[4]基于Deepin 搭建嵌入式开发环境 eclipse+arm-linux-gcc-4.3.2