首页 » 技术文章 » 嵌入式uClinux应用程序的NFS开发

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

作者:  时间:2011-07-01 20:46  来源:EDN

  2.1.6 检查主机配置是否正确

  (1)检验所共享的目录内容,可以查看/var/lib/nfs/xtab这个文件:

  # cat /var/lib/nfs/xtab 显示共享出去的目录信息。也可以用#showmount–e 192.168.111.1显示主机上的共享目录.

  (2)观察NFS激活的端口号,# netstat –utln显示内容中有

  udp 0 0 0.0.0.0:2049 0.0.0.0:*

  这里2049nfs服务所开启的端口,其它的端口是RPC Server其它程序随机产生的,每次restart nfs都会得到不一样的端口号。

  (3)mount自己提供的共享目录。#mount –t nfs 192.168.111.1:/home/pub /mnt/nfs,将主机/home/pub挂载到/mnt/nfs目录下。如果 mount成功,表示主机配置正确。#cd /mnt/nfs#ls 看见的内容就是/home/pub下的内容。

  2.1.7 卸载共享目录,停止NFS服务

  卸载共享目录#umount /mnt/nfs(#umount /home/nfs)

  停止(启动)portmap服务 # /etc/rc.d/init.d/portmap stop(restart)

  停止(启动)nfs服务 #/etc/rc.d/init.d/nfs stop(restart)

  2.2 目标机上的配置

  目标机为内核为ARM7TDMIS3C44BO板,运行uClinux操作系统。在目标机端使用NFS挂载主机上的共享目录,需要配置内核和相应的用户程序(make menuconfig)2.2.1配置内核

  Networking options --> (缺省) //开启网络功能

  Network device support --> (缺省)

  File systems ->Network File Systems—— //支持NFS文件系统

  <*> NFS file system support

  # Provide NFSv3 client support

  2.2.2用户程序配置

  Network Applications -->

  # portmap

  BusyBox -->

  # mount(mount NFS support)(mount/unmount 命令有两个地方可以选择,Filesystem Applications BusyBox。这里推荐选择BusyBox

  配置完毕后,将编译生成的映像文件image.rom下载到目标机上flash中。

  3 基于NFS的应用程序开发

  3.1 在主机上编译程序,并生成在目标机上运行的程序

  在主机/home/pub下编辑hi.c,其内容:

  #include

  main(){printf(“hi! Good!n”);}

  交叉编译hi.c#arm-elf-gcc –Wall –Wl-elf2flt –o hi hi.c生成flt格式的可执行文件hi。修改hi的权限#chmod 711 hi。该文件可以直接下载到目标机上运行,这里利用NFS看其执行情况。

  3.2 目标机利用NFS挂载主机并进行调试

  用串口线将主机的COM1和目标机的COM0连接起来,同时接上网线。在主机上打开minicom(设置参数:57600 8N1,无流控)用于同目标机通讯。目标机上电或者复位,开始启动uClinux,显示信息成功后进入sh

  在目标机上建立/var/nfs用于挂载主机上的目录(这里采用的是romfs只读文件系统,/var使用的是RAM disk驱动的ext2文件系统。所以仅/var可以用于读写,其它目录只可以读)# mkdir /var/nfs

  启动目标机上portmap服务 # portmap &

  挂载主机上的共享目录#mount -t nfs 192.168.111.1:/home/pub /var/nfs

  #ls /var/nfs可以看到主机上/home/pub的文件。此时,可以运行该目录下的可执行程序hi#./hi(注意要加“./”)出现hi! Good!。程序正常运行,将其编译到内核里。将hi拷贝到uClinux源码包的/romfs/bin下编译,生成的image.rom可以下载到 flash。在板子上的/bin下就有hi程序了,并且可以直接执行hi

  卸载使用umount # umount /var/nfs。如果让目标机启动时自动运行portmap服务,可以修改rc文件(uClinux源码中),在最后加入/bin/portmap&mkdir /var/nfs

  4 小结

  使用NFS开发模式,关键在于对主机和目标机的配置。如果配置不当,就会mount失败。以下是值得注意的地方:

  mount成功,可是运行程序. /hi时报告错误:Permission denied.即主机拒绝操作。需要修改主机上程序的权限chmod 777 /home/pub/hi。然后在目标机端运行./hi即可。

  主机上设置时候一定要关闭防火墙,不然目标机mount的时候没有响应。

  目标机上一定要先开启portmap服务。

  主机和板子的IP在同一个网段。

  如果要运行大的应用程序,在Mount的时候最好加上:

  -o rsize="1024"wsize=1024timeo=15的参数,否则多半会得到server not responsing的提示信息。

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

嵌入式系统的固件更新

嵌入式  Flash  RAM  缓冲区  2013-09-12

汽车电子向一体化集成、网络化与智能化发展

汽车电子  嵌入式  2013-05-23

东芝开发嵌入式SRAM低功耗技术智能手机

东芝  嵌入式  SRAM  2013-02-23

飞思卡尔基于ARM平台全系列MCU引领嵌入式应用新趋势

飞思卡尔  ARM  嵌入式  2013-01-29
在线研讨会
焦点