linux驱动程序helloworld,linux驱动程序Helloworld | 勤奋的小青蛙

开发环境是:Mini 2440,根文件系统采用的是NFS网络根文件系统,宿主机是Fedora 14.

本文所需代码在此处:

1.首先我们看下hello.c代码,里面定义了模块初始化和退出的方法:

#include

#include

MODULE_LICENSE("Dual BSD/GPL");

static int __init hello_init(void)

{

printk(KERN_EMERG "Hello world\n");

return 0;

}

static void __exit hello_exit(void)

{

printk(KERN_EMERG " Hello world exit\n");

}

module_init(hello_init);

module_exit(hello_exit);

然后看Makefile,我们需要修改下KERNELDIR的值,这个值是Linux的源码,我们需要用到Linux的里面一些头文件等等。

ifeq ($(KERNELRELEASE),)

KERNELDIR ?=/pub/sh_shenqian/src/kernel/linux-2.6.32.2

PWD := $(shell pwd)

modules:

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

modules_install:

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

clean:

rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.order Module*

.PHONY: modules modules_install clean

else

obj-m := hello.o

endif

2.我们进行修改Makefile之后,然后执行命令:make ,然后生成了一个 hello.ko,我们在Fedora里面,将它拷贝到Mini2440根目录的nfs文件夹,然后在SecureCRT终端,进入根目录,可以看到hello.ko;

3.在终端根目录,我们执行如下命令:

[root@FriendlyARM /]# insmod hello.ko

Hello world

[root@FriendlyARM /]# lsmod

hello 505 0 - Live 0xbf006000

[root@FriendlyARM /]# rmmod hello

Hello world exit

rmmod: module 'hello' not found

[root@FriendlyARM /]#

其中insmod命令意思是插入一个新的模块,lsmod命令我们可以看到当前所加载的模块,rmmod是移除模块。

文章的脚注信息由WordPress的wp-posturl插件自动生成

|2|left

打赏

1b6439c6a040252321edad911c85491b.png微信扫一扫,打赏作者吧~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值