下载此文档

驱动程序框架及实例分析.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
驱动程序框架及实例分析.doc,将演示编写一个名为“mydriver”的简单字符设备弧动程序,该驱动程序以可加载的模块方式进行编译,免去了重新编译内核的工作。基本要求:编写模块初始化和注销函数:init_module()和clean叩_module()函;编写3个基本操作:mydriver_open()>niydriver_rcad()、mydriver_release();编写一个测试程序来测试所编写的字符设备驱动程序。注:为了简化起见,该实例省略了初始化时为字符设备分配内存空间的步骤。#define__NO_VERSION—p#include<linux/>*J#include<linux/>^charkernel_version[]=UTS_RELEASE;^#ifndef_KERNEL_一#define_KERNEL_曰#endif^#include<linux/>/*调用printk()函数*/<-'#include<linux/> /*定义file^perations,file等结构体*#include<linux/>^#include<linux/>/*定义ssize_t*/^^include<asm-i386/>/*定义verify_area,_put__user*/#defineMYDRIVER_MAJOR0^'intmydriver_major=MYDRIVER_MAJOR;/*向系统申请的主设备号*//*open操作的实现staticintmydriver_open(structinode*inode,structfile*filp)『{一MOD_INC_USE_COUNT;/*增加该模块的用户数目*川return0;3扣/*release操作的实现*/〃staticintmydriver_release(structinode*inode,structfile*filp)^{―MOD_DEC_USE_COUNT;/*该模块的用户数目减1return0;,I/*read操作的实现*/..staticssize_tmydriver__read(stnjctfile*filp,char*buf,size_tcount,loff_t*fpos)inti;>.1/*验证用户内存空间地址是否合法*/..if(verify_area(VERIFY_WRITE,buf,count)==-EFAULT)..return-EFAULT;.Ifor(i=count;i>0;i—)._puJuser(Lbuf);/*从内核空间分配ASCII码值为1的字符到用户空间buf++;.,}.returncount;..}.,t/*write空操作*/.staticssize_tmydriver_write(structfile*filp,constchar*buf,size_tcount,loff_t*fpos)..returncount;..)■.1structfile_operationsmydriver_fops={.,NULL, /*structmodule*/.NULL, /*llseek*/.mydr

驱动程序框架及实例分析 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小58 KB
  • 时间2020-08-14
最近更新