文章所采用的系统为fedora14系统,slickedit为15.0.1.3 GDB为7.4
(一) 建立NFS连接
# vi /etc/exports
编辑文件把需要共享的目录加入到里面
[你想要的共享的目录] + ip 地址(参数一,参数二) [主机名二](参数三,参数四)
参数列表
rw: 可以写入权限
ro: 只读权限
no_root_squash: 登陆NFS主机共享目录的如果是root用户那么那的权限也为root但是这样并不安全
root_squash: 登陆的用户如果为root它的权限将变成nobody
all_squash: 不论登陆的用户是什么用户都以匿名用户的权限
sync: 数据同步写入硬盘和内存中
async: 数据先暂时存放在内存中,而不写入硬盘
anounid: 这个可以自己设定uid,但是必须与/etc/passwd目录中用户uid一样
anongid: 同anonuid,但是变的是group id
例如
/var/www/html 192.168.0.0/24(rw) *(ro)
/home/wds 192.168.0.8(rw)
然后开启一个NFS连接service nfs start
这个时候需要开启NFS守护进程,在fedora中为rpcbind
service rpcbindstart
这个时候请把防火墙关闭
查询NFS服务是否正常#showmount -e
如果返回如下
mount clntudp_create: RPC: Program not registered
则还需要如下步骤
[root@server /]# rpc.mountd
[root@server /]# showmount -e
Export list for server.example.com:
/home *
在开发板上连接网线然后挂载PC上的NFS
mount -o nolock,rsize=1024,wsize=1024,timeo=15192.168.5.104:/home/ /tmp/
尽量使用以上的参数(因为开始的时候在使用网络上面的参数后会复制或者运行程序的时候会出现NFS无响应的情况,)
这个时候就可以在开发板上访问PC的home目录下面的文件,因为运行程序是有时候需要写一些文件,这个时候需要在PC 上吧home目录的权限修改成所有人都可以修改创建文件尝试运行一个home目录下面的ARM-LINUX-GCC编译的文件
如果以上步骤后仍然不能建立NFS连接请vi etc/sysconfig/nfs把文件中的所有端口前面的#都删除,如果还不能使用,则请使用搜索引擎搜索吧。
(二) 编译GDB
编译GDB网络上面有很多教程,这里就不在复述了,GDB host选择x86 target选择arm gdbserver host 和target都是arm
(三) 配置Slickedit
这里是重头戏首先选择Project->New 选择Customize 然后选择New 在name输入ARM linux 4.4.4 在Copy setting from选择GNU C++
添加头文件,连接库文件目录,编译器和连接器均指向arm-linux-gcc,其他不需要修改,
然后尝试新建一个新的工程ARMtest,编译,OK
这个时候是不能运行程序的,因为平台不一样。
这个时候在Debug->Debugger Options->Debugging->Configurations->Add增加刚才编译的arm-linux-gdb命名为linux-arm-gbd
现在开始配置开发板,如果ARMtest的功能目录之前已经可以通过NFS共享则把gdbserver(之前编译GDB的时候产生的)放到Debug目录,在开发板下面访问这个目录进行一下步骤
#./gdbserver 192.168.2.100:2345 ARMtest
192.168.2.100为宿主机IP(PC),在目标系统的2345端口开启了一个调试进程,hello为要调试的程序。
出现提示:
Process /tmp/hello created: pid="80"
Listening on port 2345
在Slickedit中Debug->Attach to Remote Process
激活选项框在Connect选项页中file文件输入ARMtest文件的详细路径然后Host输入开发板的IP 端口输入2345 ,Remote options选项页输入下选择linux-arm-gdb选择OK稍后片刻后图形界面调试就出现了