Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44020
  • 博文数量: 12
  • 博客积分: 471
  • 博客等级: 下士
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-20 10:13
文章存档

2012年(1)

2011年(1)

2010年(1)

2008年(9)

我的朋友

分类: LINUX

2010-12-27 16:25:14

 
    NFS是Network File System的简写,即网络文件系统,通过NFS可以以根文件系统的形式访问目标板,大大提高了嵌入式linux开发的效率。
 
1、软硬件平台
 
    PC机Windows XP的IP:192.168.1.225,子网掩码:255.255.255.0,默认网关:192.168.1.1;
    PC机上虚拟机Vmware中linux版本:Red Hat Enterprise 5.1,IP:192.168.1.226,子网掩码:255.255.255.0,默认网关:192.168.1.1;
    开发板型号:micro2440,IP:192.168.1.230,子网掩码:255.255.255.0,默认网关:192.168.1.1。
    在PC机上的Windows XP系统与Vmware中的linux系统之间可以通过Samba服务器进行通信,此处不再详述。Vmware中的linux系统通过NFS服务挂载目标板,在PC机上就可以进行目标板的设备驱动程序的开发。
   
2、通过NFS启动系统
 
    按照用户手册配置好NFS服务,启动NFS服务。
    设置micro2440开发板的启动模式为NAND Flash启动,连接好电源线、串口线和网线,打开串口终端,在开机或者复位的时候按下开发板上K1-K6任意按键,然后输入q,这样就进入了vivi模式,输入以下命令:param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.226:/opt/FriendlyARM/micro2440/root_qtopia ip=192.168.1.230:192.168.1.226:192.168.1.1:255.255.255.0:micro2440.arm9.net:eth0:off"。如下图所示:
 
 
        输入boot,按下回车就可以从NFS启动目标板系统了。
 
3、linux设备驱动程序开发环境搭建
 
      下面以一个“hello world”驱动作为示例,介绍驱动程序开发流程。hello.c代码如下所示:
#include
#include

static int hello_init(void)
{
    printk(KERN_ALERT "Hello, David Chen !\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, David Chen !\n Love Linux !Love FPGA ! Love CT !\n");
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("David Chen");

       一个简单的Makefile文件如下所示:
KERNELDIR = /home/david/kernel/linux-2.6.32.2

PWD := $(shell pwd)

INSTALLDIR = /opt/FriendlyARM/micro2440/root_qtopia/lib/modules/2.6.32.2-FriendlyARM

CROSS_COMPILE = arm-linux-

CC = $(CROSS_COMPILE)gcc

obj-m := hello.o

.PHONY: modules modules_install clean

modules:

    $(MAKE) -C $(KERNELDIR) M=$(PWD)

modules_install:

    cp hello.ko $(INSTALLDIR)

clean:

    rm -rf *.o *~ core *.depend *.cmd *.ko *.mod.c .tmp_versions
       
       其中home/david/kernel/linux-2.6.32.2为内核代码所在的目录,/opt/FriendlyARM/micro2440/root_qtopia/为NFS挂载目标板的目录,按照用户手册说明,将生成的内核模块文件/lib/modules/2.6.32.2-FriendlyARM目录下。
     最后使用命令make modules和make modules_install就可以编译和安装内核模块了~
     开发板上的操作如下所示:
 

[root@FriendlyARM /]# cd /lib/modules/2.6.32.2-FriendlyARM/
[root@FriendlyARM 2.6.32.2-FriendlyARM]# ls
fpga.ko hello.ko
[root@FriendlyARM 2.6.32.2-FriendlyARM]# chmod +x hello.ko
[root@FriendlyARM 2.6.32.2-FriendlyARM]# insmod hello.ko
Hello, David Chen !
[root@FriendlyARM 2.6.32.2-FriendlyARM]# lsmod
hello 676 0 - Live 0xbf000000
[root@FriendlyARM 2.6.32.2-FriendlyARM]# rmmod hello
Goodbye, David Chen !
 Love Linux !Love FPGA ! Love CT !

 

参考文献:Tekkaman  Ninja的博客http://blog.chinaunix.net/u1/34474/showart.php?id=407202

阅读(819) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-30 12:38:49

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com