- 29
- 0
- 约6.72千字
- 约 10页
- 2020-11-19 发布于广东
- 举报
实验九:Linux字符设备驱动程序实验
实验目的:1.理解Linux设备驱动程序的基本原理;
2.掌握Linux字符设备驱动程序的框架结构;
3.学会编写字符设备驱动程序。
实验设备:PC机。
实验原理:Linux函数(系统调用)是应用程序和操作系统内核之间的接口,而
设备驱动程序是内核和硬件设备之间的接口,设备驱动程序屏蔽硬件
细节,且设备被映射成特殊的文件进行处理。每个设备都对应一个文
件名,在内核中也对应一个索引节点,应用程序可以通过设备的文件
名来访问硬件设备。Linux为文件和设备提供了一个致性的接口,用
户操作设备文件与操作普通文件类似。例如,通过 open()函数可打
开设备文件,建立起应用程序与目标设备的连接;之后,可以通过
read()、write()、ioctl()等常规文件函数对目标设备进行操作。
实验方法:
实现对虚拟设备(一段内在)的打开、关闭、读写的操作,并要通过编写测
试程序来测试虚拟设备及其驱动运行是否正常。
1.实验源代码
/* test_drv.c */
#include linux/module.h
#include linux/init.h
#include linux/fs.h
#include linux/kernel.h
#include linux/slab.h
#include linux/types.h
#include linux/errno.h
#include linux/cdev.h
#include asm/uaccess.h
#define TEST_DEVICE_NAME test_dev
#define BUFF_SZ 1024
/*全局变量*/
static struct cdev test_dev;
unsigned int major =0;
static char *data = NULL;
/*函数声明*/
staticssize_ttest_read(structfile*file,char*buf,size_tcount,
loff_t *f_pos);
static ssize_t test_write(struct file *file,const char *buffer,
size_t count,loff_t *f_pos);
static int test_open(struct inode *inode, struct file *file);
static int test_release(struct inode *inode,struct file *file);
/*读函数*/
staticssize_ttest_read(structfile*file,char*buf,size_tcount,
loff_t *f_pos)
{
int len;
if (count 0 )
{
return -EINVAL;
}
len = strlen(data);
count = (len count)?count:len;
if (copy_to_user(buf, data, count))
{
return -EFAULT;
}
return count;
}
/*写函数*/
static ssize_t test_write(struct file *file, const char *buffer,
size_t count, loff_t *f_pos)
{
if(count 0)
{
return -EINVAL;
}
memset(data, 0, BUFF_S
您可能关注的文档
- 一种水性环保型脱漆剂.pdf
- 降维观测器示例.doc
- 钢制防火门安装交底.doc
- 三孔连杆---工艺设计---工艺过程卡.doc
- 汽车行业标准《汽车玻璃升降器》编制说明.pdf
- 实验三 混合碱中各组分含量的测定.pdf
- 鲜肉类的腐败变质.doc
- 亿童故事:床上有几只脚.doc
- 显示屏常用IC引脚功能.doc
- STM32 8位数码管动态扫描说明书.doc
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 周清1 民法中的人身权及财产权.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.4.1 权利保障 于法有据.pptx
- 2025北京丰台区高二(上)期中地理(A卷)含答案.docx
- 2025北京三帆中学初三(上)开学考英语试题含答案.docx
- 2025北京一零一中初三9月月考语文试题含答案.docx
- 2025北京海淀区初三(上)期中道法试题含答案.docx
- 2025北京丰台区高一(上)期中政治(A卷)含答案.docx
- 25-26学年政治统编版必修4课件:3.3 唯物辩证法的实质与核心.pptx
- 25-26学年政治统编版必修4课件:7.2 正确认识中华传统文化.pptx
- 湖北省部分高中2026届高三上学期二模联考 历史试卷.docx
最近下载
- 高一【美术(人美版)】人作与天开——中国古典园林艺术-教学设计.pdf VIP
- 同济大学《高等数学》授课教案.pdf VIP
- 美国联邦法规.docx VIP
- 嗜酸性肉芽肿性多血管炎诊治多学科专家共识(2025年版).pptx VIP
- 公安看守所智能化安防项目设计方案.pdf VIP
- 23.周亚夫军细柳复习课件.pptx VIP
- 一把手 2025年度在带头强化政治忠诚、提高政治能力;在带头固本培元、增强党性;在带头敬畏人民、敬畏组织、敬畏法纪;在带头干事创业、担当作为;在带头坚决扛起管党治党责任五个带头方面存在的问题.docx VIP
- 土壤导则培训.pptx VIP
- 2025年妇女保健科工作总结暨工作计划.docx
- 河流与湖泊第一课时课件-2025-2026学年八年级地理上学期(人教版2024).pptx VIP
原创力文档

文档评论(0)