第9章 字符设备驱动程序开发
字符设备驱动程序
第9章
9-1 字符设备驱动程序基本结构
字符设备开发的基本步骤
确定主设备号和次设备号
实现字符驱动程序
实现file_operations结构体
实现初始化函数,注册字符设备
实现销毁函数,释放字符设备
创建设备文件节点
9-1 字符设备驱动程序基本结构
什么是主设备号/次设备号
主设备号是内核识别一个设备的标识。
整数(占12bits),范围从0到4095,通常使用1到255
次设备号由内核使用,用于正确确定设备文件所指的设备。
整数(占20bits),范围从0到1048575,一般使用0到255
9-1 字符设备驱动程序基本结构
设备编号的内部表达
dev_t类型(32位):
用来保存设备编号(包括主设备号(12位)和次设备号(20位))
从dev_t获得主设备号和次设备号:
MAJOR(dev_t);
MINOR(dev_t);
将主设备号和次设备号转换成dev_t类型:
MKDEV(int major,int minor);
9-1 字符设备驱动程序基本结构
分配主设备号
手工分配主设备号:找一个内核没有使用的主设备号来使用。
#include linux/fs.h
int register_chrdev_region( dev_t first, unsigned int count, char *name );
要分配的设备编号范围的起始值,次设备号经常为0
所请求的连续设备编号的个数
和该编号范围关联的设备名称
9-1 字符设备驱动程序基本结构
动态分配主设备号:
#include linux/fs.h
int alloc_chrdev_resion(dev_t *dev,unsigned int firstminor,
unsigned int count,char *name);
输出的设备号
要使用的被请求的第一个次设备号
9-1 字符设备驱动程序基本结构
释放设备号
void unregister_chrdev_region(dev_t first, unsigned int count);
通常在模块的清除函数中调用。
9-1 字符设备驱动程序基本结构
实现字符驱动程序
cdev 结构体
struct cdev
{
struct kobject kobj; /* 内嵌的kobject 对象 */
struct module *owner; /*所属模块*/
struct file_operations *ops; /*文件操作结构体*/
struct list_head list;
dev_t dev; /*设备号*/
unsigned int count;
};
9-1 字符设备驱动程序基本结构
file_operations 结构体
字符驱动和内核的接口:
在include/linux/fs.h定义
字符驱动只要实现一个file_operations结构体
并注册到内核中,内核就有了操作此设备的能力。
9-1 字符设备驱动程序基本结构
file_operations的主要成员:
struct module *owner: 指向模块自身
open:打开设备
release:关闭设备
read:从设备上读数据
write:向设备上写数据
ioctl:I/O控制函数
llseek:定位读写指针
mmap:映射设备空间到进程的地址空间
9-1 字符设备驱动程序基本结构
注册设备 ,在模块或驱动初始化时调用
Linux-2.4 及之前
Linux-2.6
int register_chrdev(unsigned int major,
const char *name,
struct file_operations *fops)
如何操作字符设备的接口
void cdev_init( struct cdev *, struc t file_operations *);
int cdev_add(st ruct cdev *, dev_t, unsigned) ;
9-1 字符设备驱动程序基本结构
注销设备:在模块卸载时调用
Linux-2.4及之前
Linux-2.6
int unregister_chrdev(unsigned int major,
const char *name);
void cdev_de
您可能关注的文档
最近下载
- 分点进水多级AO污水处理工艺设计计算探讨.pdf VIP
- 高中物理必修二圆周运动习题精选.doc VIP
- (必会)军队文职(中医学)近年考试真题题库资料汇总(含答案).pdf VIP
- 2025年安徽分类考试对口升学语文真题试卷 .pdf VIP
- (必会)军队文职(公共科目)近年考试真题题库资料汇总(含答案).pdf VIP
- 专题01-语言文字运用【真题汇编】(2021-2025)五年高考真题语文分类汇编-含答案解析.pdf VIP
- 分段进水多级 AO 工艺的特点与问题.pdf VIP
- 沉淀+多级 AO+混凝沉淀废水处理工艺.docx VIP
- 2025年新版对口高考试卷及答案安徽.doc VIP
- 不同回流比对多级AO工艺污染物去除的影响.docx VIP
原创力文档

文档评论(0)