实用技巧:Gdbserver远程调试的具体实现
采用的是nfs目标板挂载本机目录的方法,当然首先,你得开通本机的nfs共享服务,具体步骤如下:
1、进入/etc目录,vim exports这个文件,在里面添加/home 192.168.0.*(rw,sync)保存后退出
注:/home 为要共享的文件夹的名称,192.168.0.*为本NFS服务器允许访问的客户端ip,若nfs不成功,后面参数rw ro 等标志对文件夹操作权限,sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。可以将括号里面的sync去掉。
2、重新启动nfs服务,命令为:/sbin/service nfs restart
3、输入命令route del default来关闭网关(加快mount速度)
4、mount 192.168.0.47(为本机的ip):/home /mnt用以测试本机是否开通nfs服务。
cd /mnt目录下,看mnt下的内容是否与home的内容一致,若一致,表明已经开通nfs服务。
当本机的nfs服务开通后,你还需要配置开发板的ip地址,由于各个开发板ip地址配置方法不一样,所以,假设开发板的ip地址为192.168.2.100.
搭建交叉编译环境的步骤:
1、一般在安装linux时候,自动安装c编译环境,因此不需要再重新安装gcc编译器。
2、安装交叉编译器
从linux.org.uk/pub/armlinux/toolchain/">ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/下载交叉编译器cross-3.2.tar.bz2, 存放在/usr/local目录下。
切换致该目录:
# cd /usr/local
# mkdir arm
然后解压cross-3.2.tar.bz2:
# tar jxvf cross-3.2.tar.bz2 –C /usr/local/arm
解压后把/usr/local/arm/usr/local/arm中最后一个arm拷贝到/usr/local,也就是用命令cd /usr/local/arm/usr/local中,用cp -a arm /usr/local把arm拷贝到/usr/local中去。
3、把交叉编译器的路径加入到PATH.(两种方法a,b)
a、# export PATH=$PATH:/usr/local/arm/bin
注:(这只能在当前的终端下才是有效的,)
b、修改/etc/profile 文件:
# vim /etc/profile
增加路径设置,在末尾添加如下:
export PATH=$PATH:/usr/local/arm/bin
4、使新的环境变量生效。
# source /etc/profile
5、检查是否将路径加入PATH的方法。
# echo $PATH
如果显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH.自此,交叉编译环境安装完成。
6、测试。
下面我们就来测试一个简单的例子。
/*Hello.c*/
#include
int main()
{
printf(“hello word!\n”);
return 0;
}
程序输好以后确认无误,保存。进入程序文件所在目录
# arm-linux-gcc hello.c –o hello
(-o 可以理解为“目标为生成”)arm-linux-gcc是第一次出现,有人可能会问这个哪里来的,不妨打开刚才安装的交叉编译工具目录/usr/local/arm-linux/arm-linux/bin/可以发现里面有一个arm-linux-gcc文件,这个就是针对arm的CPU的gcc编译器了。以后用其它编译工具链式也可以通过这种方法看看其编译器是什么了。编译好了以后就可以下载到目标机进行测试了。当然也可以先在PC机上测试正误。用gcc hello.c –o hello就可以生成PC机上程序了,在运行。/hello 就可以发现终端显示hello!字样。用arm-linux-gcc编译的程序在PC机上是不能运行的,运行后给出错误报告:无法执行二进制文件。说明经过交叉编译环境编译出的文件是硬件可执行的二进制代码文件。
[2] 下一页
- 最新评论