好文档 - 专业文书写作范文服务资料分享网站

设备管理--Linux设备驱动程序安装

天下 分享 时间: 加入收藏 我要投稿 点赞

设备管理--Linux设备驱动程序

安装(总4页)

--本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--

集美大学计算机工程学院实验报告

课程名称:操作系统 指导教师: 实验项目名称:

设备管理——Linux设备驱动程序安装 实验项目编号:

一、 目的(本次实验所涉及并要求掌握的知识点)

班级:xxx 姓名:xxx 学号:xxxx 组号:

实验成绩:

上机实践日期:xxx 上机实践时间: 2 学时

1. 认识Linux的设备的种类和设备工作方式;

2. 理解设备驱动程序的工作原理;

3. 掌握设备驱动程序的编写规范,能编写并安装简单的设备驱动程序。

二、 实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图)

实验内容:

在Linux系统中,编写一个简单的字符型设备驱动程序模块,设备具有独占特性,可执

行读和写操作,相关系统调用为open, close, read, write,open和close分别相当于请求和释放设备,read和write内容保存在设备模块内的缓冲区中。设备模块可动态注册和卸载,并建立与之对应的特殊文件/dev/mydev。

实验设计:

1.按照要求编写设备驱动模块,同时编写一个测试程序 2.分别对其编译,注意编译时的项 3.设备模块加载 4.创建特殊文件 5.分析执行结果 6.设备模块卸载

三、实验使用环境(本次实验所使用的平台和相关软件)

Linux

四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析)

LINUX_VERSION_CODE is

* the code (as per KERNEL_VERSION) of this version. */

#if LINUX_VERSION_CODE > KERNEL_VERSION(2,2,0) #include /* for put_user */ #endif

#define SUCCESS 0

#define DEVICE_NAME \

2

#define BUF_LEN 50

static int Device_Open =0; static char Message[BUF_LEN]; static int Major;

static int mydev_open(struct inode *inode,struct file *file) {

if(Device_Open) return -EBUSY; Device_Open=1;

MOD_INC_USE_COUNT; // 模块使用者数加1,非0不能卸载 return 0; }

static int mydev_release(struct inode *inode,struct file *file) {

Device_Open=0;

MOD_DEC_USE_COUNT; // 模块使用者数减1 return 0; }

static ssize_t mydev_read(struct file *file,char *buffer, size_t length ,loff_t *f_pos) {

int bytes_read=0;

//确认访问用户内存空间合法性

if(verify_area(VERIFY_WRITE,buffer,length)==-EFAULT) return -EFAULT;

//由用户空间到系统空间复制

bytes_read=copy_to_user(buffer,Message,length); return bytes_read; }

static ssize_t mydev_write(struct file *file, const char *buffer,size_t length,loff_t *f_pos) {

int len = BUF_LEN

if(verify_area(VERIFY_READ,buffer,length)==-EFAULT) return –EFAULT;

//由用户空间到系统空间复制

copy_from_user(Message,buffer,len); return length; }

struct file_operations Fops = {

release: mydev_release, open: mydev_open,

3

设备管理--Linux设备驱动程序安装

设备管理--Linux设备驱动程序安装(总4页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--集美大学计算机工程学院实验报告课程名称:操作系统指导教师:实验项目名称:设备管理——Linux设备驱动程序安装实验项目编号:
推荐度:
点击下载文档文档为doc格式
5rrlz00uq77yqpo85se79mzf00wron00ixw
领取福利

微信扫码领取福利

微信扫码分享