helloworld驱动_第1页
helloworld驱动_第2页
helloworld驱动_第3页
helloworld驱动_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 编写 Hello world 模块驱动 收藏 编写 Hello world 模块驱动华清远见-嵌入式领域著名讲师 O(_)O 牛牛猛点击链接加我好友!欢迎大家去我CSDN博客上踩踩我的个人主页晚上没事,同学邀我写个模块的实验手册,拿出来和大家分享一下(1) 模块动态加载驱动方式在内核源码的“drivers/char/”目录下新建一个名为“hello .c”的文件,内容如下: #include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h> MODULE_LICENSE (&q

2、uot;GPL"); static int _init hello_init (void) printk (KERN_INFO "Hello worldn"); return 0; static void _exit hello_exit (void) printk (KERN_INFO "Goodbye worldn"); module_init (hello_init);module_exit (hello_exit); 修改Makefile里面的内核源码包的路径,这里我们必须用到一个已经编译好的内核的源码这里我们用了KERNELDIR ?

3、= /mnt/mengyang/source/kernel/linux-2.6.33根据自己的实际情况修改,一定确保你的内核可以编译通过,内核可以正常运行!在命令行里运行make命令,顺利的会生成*.ko文件。将*.ko文件复制到nfs目录,或是其他的存储设备。在命令行里运行插入模块的命令insmod *.ko顺利的可以看到init函数将会被调用。同样,运行rmmod *.ko顺利的可以看到clean函数被执行了。执行上面命令时,可能报错误rmmod: chdir(2.6.33.2-TE2440): No such file or directory这是由于busybox 1.13.1导致的,

4、原来是现在的内核模块在插入卸载时都会要转到/lib/modules/内核版本号目录里。 所以只要建立这个目录并且把要使用的模块*.ko文件复制到这个目录就行了。(2)静态的加载驱动在内核源码中添加对hello 驱动的支持修改drivers/char/目录下的“Kconfig”文件,在7 行添加如下内容:(红色部分所示)# Character device configuration#menu "Character devices"config CCTE_HELLOtristate "CCTE2440 Hello Driver"depends on ARC

5、H_S3C2440helpCCTE2440 Hello.修改同目录下的“Makefile”文件,在合适的行添加如下内容:# Makefile for the kernel character device drivers. # This file contains the font map for the default (hardware) font#obj-$(CONFIG_ CCTE_HELLO) += hello.o 配置内核然后输入:#make menuconfig,然后配置如下:Device Drivers ->Character devices -><*> CCTE2440

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论