Linux下CodeBlocks远程调试ARM程序环境搭建
来源:互联网 发布:php 那个版本速度快 编辑:程序博客网 时间:2024/05/22 05:00
Codeblocks:Release 8.02、宿主机:ubuntu10.04、开发板:嵌入式linux操作系统。
1 Codeblocks配置交叉编译环境
如下图所示,由上到下的选择,1处直接选择即可。2处是你交叉编译器安装位置,3 4 5 6 可以在你交叉编译器安装位置下的bin目录找到。
注:2处的Compiler's installation directory 目录一定要设置正确,一定是交叉编译工具链 bin 目录的上一级目录,比如我的是 /usr/local/arm/arm-linux-4.4.3/bin/ 目录的上一级,即为 /usr/local/arm/arm-linux-4.4.3。
注:arm-linux-gdb和gdbserver默认是不安装的,需要我们自己安装。arm-linux-gdb安装目录最好也选择为交叉编译器安装目录,即/usr/local/arm/arm-linux-4.4.3。
2 arm-linux-gdb和gdbserver安装方法
注:如上所述,arm-linux-gdb的安装路径建议是/usr/local/arm/arm-linux-4.4.3。
2.1 arm-linux-gdb的编译安装
下载gdb-6.8.tar.bz2至工作目录,gdb源码下载:http://ftp.gnu.org/gnu/gdb/命令如下:
$tar -jxvf gdb-6.8.tar.bz2
$cd gdb-6.8
$./configure --target=arm-linux --enable-sim --prefix=/usr/local/arm/arm-linux-4.4.3
--prefix用于指定安装路径
$make
$sudo make install
完成后可以在/usr/local/arm/arm-linux-4.4.3/bin下找到arm-linux-gdb文件
2.2 arm-linux-gdbserver的编译安装
进入/gdb/gdbserver,命令如下:$cd gdb/gdbserver./configure --target=arm-linux --host=arm-linux
$make CC=arm-linux-gcc
(CC=arm-linux-gcc用于指定arm-linux编译器)
编译成功后在当前目录下会生成gdbserver文件,拷贝至开发板上(可放入开发板/usr/bin/目录,这样在任何目录均可执行gdbserver命令)。
3 配置nfs共享文件目录
3.1 安装NFS软件包
Ubuntu 上默认是没有安装 Ubuntu nfs 服务器的,因此我们首先安装 Ubuntu nfs 服务器端:$sudo apt-get install nfs-kernel-server
3.2 添加NFS共享文件目录
安装完NFS服务器等相关软件后,需要指定用于共享的NFS目录,其方法为在/etc/exports文件里面设置对应的目录及相应的访问权限,每一行对应一个设置。
$sudo vi /etc/exports
在最后加入一行:/home/wcl/nfs_root/*(rw,sync,no_root_squash)注: /rootfs 是要共享的目录(必须保证真实存在,否则启动nfs服务时会提示找不到该目录), *代表允许所有的网段IP均可访问, rw 是可读写权限,sync 是数据同步写入内存和硬盘,no_root_squash 是 Ubuntu nfs 客户端分享目录使用者的权限,如果客户端使用的是 root 用户,那么对于该共享目录而言,该客户端就具有 root 权限。
修改挂载点的属性:
$chmod 777/home/wcl/nfs_root/
启动 nfs 服务:
$sudo/etc/init.d/nfs-kernel-server start
在 nfs 服务已经启动的情况下,如果修改了 /etc/exports 文件,需要重启 nfs 服务,以刷新 nfs 的共享目录 :
$sudo /etc/init.d/nfs-kernel-server restart
3.3 本机测试NFS服务
将已经设定好的 nfs 共享目录 mount 到另一个目录下,测试看能否成功,比如:$sudo mount -t nfs –o nolock 192.168.0.101:/home/wcl/nfs_root/ /mnt/nfs/
进入到 /mnt/nfs 目录下查看内容是否是挂载的 /home/wcl/nfs_root/ 目录下的内容:
$cd /mnt/nfs/
$ls -l
注:如果出现 nfs mount device or resource busy ,这可能是因为多次挂载的原因,因此要先umount /mnt/nfs 一下 ,如果还是挂载不成功需要重系统来试试。
4 修改Codeblock工程的调试属性
这里通过网络来实现gdb的远程调试,所以需要将宿主机的一个目录挂载到开发板上,这里直接通过 nfs 服务挂载即可。选择什么目录随意,建议挂载工程所在目录到ARM需要的位置,比如将宿主机(地址192.168.0.101)的/home/wcl/nfs_root/目录挂载到ARM板的/mnt/nfs/,则在ARM上执行 :
$mount -t nfs -o nolock 192.168.0.101:/home/wcl/nfs_root/ /mnt/nfs/
修改Codeblock项目的工程属性,在项目名称上点击右键,选择属性:
修改debug的ip地址和端口,端口任意(与ARM板上的gdbserver监听端口一致即可),ip地址是ARM板的ip地址,这是为了连接开发板的gdbserver而设置的。
5 调试示例
进入 nfs 挂载的共享目录下,运行 gdbserver 服务:
$gdbserver 192.168.0.101:1111 ./bin/debug/TestGdb
这里ip地址是宿主机的,端口自定,但是要和codeblock设置的一致。./bin/debug/TestGdb 为Codeblock生成的ARM二进制可调试文件。
然后再在宿主机中开始调试,如下图所示:
- Linux下CodeBlocks远程调试ARM程序环境搭建
- arm-linux-gdb+gdbserver环境搭建以及远程调试
- arm-linux-gdb+gdbserver环境搭建以及远程调试
- Linux下Eclipse加JLlink调试ARM环境搭建
- arm-linux-gdb+gdbserver环境搭建以及远程调试 及调试core文件
- arm-linux-gdb+gdbserver环境搭建以及远程调试 及调试core文件
- Emacs+GDB远程调试ARM-LINUX程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- Insight 和 gdbserver 搭建ARM远程调试环境
- 搭建ARM调试环境
- linux下建立arm-gdb调试环境
- Linux环境下程序调试
- arm-linux-gcc UBUNTU 下搭建环境
- Linux下搭建arm交叉编译环境
- Linux下ARM开发环境搭建
- 在github里创建一个新项目,并且在intellj idea中使用github来做版本控制
- 使用 Python 创建你自己的 Shell(下)
- #233 – DrawingVisual类的一个例子
- 387.First Unique Character in a String
- 如何等一个线程执行完执行另外一个线程,借助FutureTask类
- Linux下CodeBlocks远程调试ARM程序环境搭建
- mysql 行转列
- perf4j
- Inno setup 常用修改技巧
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- Android——Dagger2依赖注入框架
- iOS中GCD的使用小结
- 第二章:数据库设计和ER模型
- Ubuntu 16.04 VSFTP服务器搭建