linux2.6 添加驱动,linux2.6最简单的驱动

linux 系统下面的驱动与裸机下的驱动不同,不能直接对IO脚进行操作,在linux下面的GPIO脚的读写,只能

通过对其实际地址对应的map地址进行操作。map 通过函数ioremap(StartAddr,Len),实现(StartAddr是实

际起始地址,Len是长度).函数的返回值就是对应的map 地址

对GPIO的读写函数:readl(MapAddr),writel(Value,MapAddr)

linux下面的驱动已经模块化了,make好的驱动可以通过insmod命令调用驱动模块,详情见下面的实例:

/*****************code ***********************/

hello world  linux2.6下:

#include < linux/module.h>

#include < linux/config.h>

#include < linux/init.h>

MODULE_LICENSE("GPL"); // 新,否则有 waring, 去掉了 #define MODULE, 自动定义

static int hello_init(void)

{

printk(KERN_ALERT "Hello, worldn");

return 0;

}

static void hello_exit(void)

{

printk(KERN_ALERT "Goodbye, cruel worldn");

}

module_init(hello_init);// 必须!!

module_exit(hello_exit); // 必须!!

/***这里没有用到对GPIO的操作,只是个最简单的实例****/

/*********************** end code ***********************/

Makefile文件的编写:

最简单的就一句话:

obj-m:=name.o

编译:

make -C /PATH/linux2.6 SUBDIRS=$PWD modules

PATH指向linux内核文件夹

完成这步之后就会在当前目录下面生成 .ko文件

linux 2.6内核在板子上跑起来之后就可以用insmod命令加载 .ko文件

NFS server配置

我的是在s3c2440+linux2.6.18+fc5下面完成

其中涉及到通过网络口用tftp服务器下载zImage文件,NFS服务器提供文件系统

我的tftp服务器是windows下面的,在linux下面编译好2.6的内核好放到window下面,启动tftp

服务器,将zImage文件放到其服务目录下

NFS server是在linux 下面建立

安装好NFS server包之后,设置/etc/export文件

对其服务目录及mount IP和权限进行配置

我的配置如下:

/home/lwx/linux *  (rw,sync,no_root_squash)

目录            允许的IP,*表示任何IP都可以,后面的是权限设置

然后/etc/init.d/nfs start  启动NFS服务器

进入/mnt目录,

mkdir nfs

mount -t nfs 192.168.1.188:/home/lwx/linux /mnt/nfs

192.168.1.188为我的linux 主机IP

此时,将zImage内核文件下载到目标板,运行,就可以看到linux 在 arm 上运行了,文件

系统由NFS server 提供,进入命令行,加载驱动,完成!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值