用户中心

资讯 > 嵌入式系统

嵌入式uClinux应用程序的NFS开发

2008.01.08阅读 3901

  在目标机上可以运行uClinux了,接着就需要开发完成特定任务的应用程序了。由于嵌入式uClinux的特殊开发环境(主机--目标机),其应用程序的开发模式也有多种。

  一种是在主机上编写程序控制工程网版权所有,然后编译、连接、调试,成功后将程序和内核一同编译并下载到目标板。这种模式中不利于开发的问题有:主机和目标机的运行环境(如指令集控制工程网版权所有,函数库等)不同。另一种是通过网线或串口线将目标机和主机连起来,直接在目标机上开发调试。这种模式使用NFS将主机的特定目录mount到目标机上,对主机的操作就是对目标机的操作。采用 NFS模式可以方便应用程序的开发,减少映像文件的下载次数和对flash的烧写次数。这对于缩短开发周期,提高开发效率,加快产品的上市时间相当重要。

  1 NFS的简要介绍

  NFS是Network File System(网络文件系统)的缩写,最初是由Sun公司开发出来的分布式文件系统。提供NFS服务的一方是NFS Server(远程主机),使用NFS服务的一方是NFS Client(客户机)。利用它,客户机可以将远程主机提供的共享目录挂载到自己的目录上控制工程网版权所有,在本地的操作如同对

远程主机的操作。

  NFS有自己的协议与端口号(2049),它本身并没有提供传输资料的协议,但是NFS却能通过网络进行资料的共享。这是因为在资料传送或者其它相关数据交互的时候,NFS用远程过程调用(Remote Procedure Call, RPC)的传输协议。RPC服务portmap负责管理服务与相关端口映射的工作。因此,使用NFS服务必须先激活RPC服务portmap,在主机和目标机上都要实现RPC服务,才可以使用NFS。

  使用NFS Server还需要激活至少两个系统守护进程:rpc.nfsd用于管理Client使用主机共享目录的权限,包含对Client的IP的判别; rpc.mountd用于管理NFS的文件系统。当Client通过rpc.nfsd后,在使用NFS Server提供的文件前,还必须取得使用权限的认证。rpc.nfsd及rpc.mountd的系统服务是由nfs-utils提供的。

  2配置主机和目标机的NFS服务

  嵌入式系统的开发是基于主机/目标机控制工程网版权所有,在主机上要安装目标机的交叉编译工具。需要在主机上编译出可以在目标机上运行的可执行文件。该可执行文件通常需要下在到目标机上才可以运行,而利用NFS可以不用下载即可运行。下面以主机RedHat9.0+PCCONTROL ENGINEERING China版权所有,IP为192.168.111.8;目标机 uCLinux(内核为linux.2.4.x)+S3C44B0,IP为192.168.111.1的环境讲解使用NFS需要的配置。

  2.1主机上的配置

  NFS服务需要内核(Kernel)支持,因此,内核版本最好高于2.2.x。如果重新编译内核,一定要选择支持NFS。主机上的配置均以root用户进行。

  2.1.1确认是否安装了NFS服务

  NFS服务一般在RedHat9.0安装时就默认安装的。检查是否安装了nfs的方法是:

  (1)查看/etc/rc.d/init.d目录下是否有nfs和nfslock文件,如果有说明主机已经安装了nfs服务。(#ls /etc/rc.d/init.d/)

  (2)#rpm -qa| grep -i nfs,出现redhat-config-nfs-1.0.4-5,

  nfs-utils-1.0.1-2.9这表示安装了NFS。如果没有安装,安装过程如下:

  #mount /dev/cdrom /mnt/cdrom(挂载光盘)

  #cd /mnt/cdrom/RedHat/RPMS

  #rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm rpm

  2.1.2检查RPC程序是否已经启动

  #rpcinfo -p,检查系统RPC运行状况,若出现

  100000 2 tcp 111 portmapper

  100000 2 udp 111 portmapper 表示已经启动RPC程序。

  2.1.3启动主机上的NFS服务,并关闭防火墙

  NFS服务一般不会在开机时自动启用。启动该服务:

  (1)#ntsysv,选中nfs,nfslock和portmap;或者#setup,选择System services里的nfs,nfslock和portmap。

  (2)启用portmap服务,# /etc/rc.d/init.d/portmap start。也可以#service nfs start 和#service portmap start启动服务。激活portmap

标签:uClinux,
版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688