linux简单的设备驱动程序.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux简单的设备驱动程序

简单的设备驱动程序 一、实验目的:动手实践一个简单的字符型设备驱动程序,学习驱动程序编写的基本步骤。 二、实验内容:编写一个简单的字符型设备驱动程序。 三、实验设备:PC机,REDHAT软件,配置好ARMLINUX的开发环境。 四、实验步骤: 编写简单的字符型设备驱动程序,学习编写驱动程序的过程。打开VI,编写以下代码: //device driver program #includelinux/config.h/*内核编译时的配置文件,文件里面指向一个make menuconfig自动生成的文件autoconf.h*/ #includelinux/kernel.h//模块驱动程序的头文件 #includelinux/module.h #includelinux/sched.h //中断相关的头文件 #includelinux/interrupt.h #includelinux/timer.h //定时器相关的头文件 #includelinux/init.h #includelinux/delay.h #includelinux/modversions.h #includelinux/version.h //文件中定义了LINUX内核的所有的版本,用于版本检查 #includeasm/io.h//访问系统硬件用的头文件 #includeasm/irq.h #includeasm/hardware.h #includelinux/devfs_fs_kernel.h #define SimpleD_MAJOR 96 //定义主设备号 devfs_handle_t dev_handle; //系统DEVFS所用到的handle int SimpleD_temp_count=0; //定义系统变量,防止文件被多重打开 /*-------------------Simpled Read------------------------*/ ssize_t SimpleD_read(struct file *file,char *buf,size_t count,loff_t *f_ops) { printk(S3c2410:device file-Read operation!\n); return count; } /*-------------------Simpled Write------------------------*/ ssize_t SimpleD_write(struct file *file,char *buf,size_t count,loff_t *f_ops) { printk(S3c2410:device file-write operation!\n); return count; } /*-------------------Simpled Ioctl------------------------*/ ssize_t SimpleD_ioctl(struct inode *inode,struct file *file,unsigned int cmd,long data) { printk(S3c2410:device file-ioctl operation!\n); } /*------a-------------Simpled device open------------------------*/ ssize_t SimpleD_open(struct inode *inode,struct file *file) { return 0; } /*-------------------Simpled device close------------------------*/ ssize_t SimpleD_release(struct inode *inode,struct file *file) { devfs_unregister_chrdev(SimpleD_MAJOR,SimpleD); devfs_unregister(dev_handle); return 0; } /*SimpleD设备向系统注册用的OPS结构,里面是对应的操作*/ struct file_operations SimpleD_ops={ open : SimpleD_open, read : SimpleD_read, write : SimpleD_write, ioctl : SimpleD_ioctl, release : SimpleD_release, }; /*初始化设备的函数*/ static int __init HW_SimpleD_init(void)

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档