linux混杂设备驱动

在Linux系统中,存在一类字符设备,它们拥有相同的主设备号(10),但次设备号不同,我们称这类设备为混杂设备(miscdevice)。所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的混杂设备。

Linux中使用struct miscdevice来描述一个混杂设备。

struct miscdevice {
int minor; /* 次设备号*/
const char *name; /* 设备名*/
const struct file_operations *fops; /*文件操作*/
struct list_head list;
struct device *parent;
struct device *this_device;
};

Linux中使用misc_register函数来注册一个混杂设备驱动。
int misc_register(struct miscdevice * misc)

头文件:#incluede <linux/miscdevice.h>

时间: 2024-12-07 12:45:38

linux混杂设备驱动的相关文章

混杂设备驱动--输出两路PWM

尝试用2440的TOUT0和TOUT1输出PWM驱动两个电机,电机的硬件驱动电路是使用L298N. 先单独测试TOUT0的PWM输出: (1)驱动程序:使用misc混杂设备驱动模型,当然也可以使用基本的字符设备模型. 使用misc设备驱动模型步骤: ①初始化一个struct miscdevice结构体:主要是file_operation结构体成员和name ②使用misc_register和misc_deregister注册和注销这个结构体 代码示例: #include <linux/modul

1.混杂设备驱动

Linux的设备有很多.所以在认识这些设备的时候得有一个方法去系统的对待他们.第一找出在linux内核代码中是使用什么结构来描述混杂设备的.第二是怎么来注册的.下图就是内核里混杂设备的结构. Minor是次设备号,name是主设备号.还有一个struct file_operations的结构是需要我们去初始化的. 上面是混杂设备驱动的注册.所以要实现一个混杂设备驱动.首先是初始化我们的miscdevice结构,接着就是使用misc_register函数注册一个混杂设备. 接下来驱动代码实现:

12.混杂设备驱动模型

混杂设备驱动模型 在Linux系统中,存在一类字符设备,它们拥有相同的主设备号(10),但次设备号不同,我们称这类设备为混杂设备(miscdevice).所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的混杂设备. 一.设备描述 Linux中使用struct miscdevice来描述一个混杂设备. 1 struct miscdevice { 2 int minor; /* 次设备号*/ 3 const char *name; /* 设备名*/ 4 const struct f

linux字符设备驱动

一.字符设备.字符设备驱动与用户空间访问该设备的程序三者之间的关系. 如图,在Linux内核中使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主.次设备号)以确定字符设备的唯一性.通过其成员file_operations来定义字符设备驱动提供给VFS的接口函数,如常见的open().read().write()等. 在Linux字符设备驱动中,模块加载函数通过register_chrdev_region( ) 或alloc_chrdev_region( )来静态或者动态获

linux总线设备驱动模型

本篇文章通过平台总线设备模型为例,讲解总线设备驱动模型: platform_device_register的作用: 1.把device放入bus的device链表 2.从bus的driver链表中取出每一个driver,用bus的match函数判断driver能否支持这个device 3.若可以支持,调用driver的probe函数 platform_driver_register的作用: 1.将driver放入bus的driver链表 2.从bus的device链表中取出每一个device,用

linux块设备驱动之实例

前两篇blog已经基本熟悉了块设备的相关结构,这里来总结下ldd3中提到的一些块设备驱动例题: 1.注册:向内核注册个块设备驱动,其实就是用主设备号告诉内核这个代表块设备驱动 sbull_major = register_blkdev(sbull_major, "sbull"); if (0 >= sbull_major){ printk(KERN_WARNING "sbull: unable to get major number!\n"); return

LINUX块设备驱动&lt;2&gt;

转自:http://blog.chinaunix.net/uid-15724196-id-128140.html 第2章 +---------------------------------------------------+|                 写一个块设备驱动                  |+---------------------------------------------------+| 作者:赵磊                               

LINUX块设备驱动&lt;5&gt;

转自:http://blog.chinaunix.net/uid-15724196-id-128143.html 第5章 +---------------------------------------------------+|                 写一个块设备驱动                  |+---------------------------------------------------+| 作者:赵磊                               

LINUX块设备驱动&lt;1&gt;

转自:http://blog.chinaunix.net/uid-15724196-id-128139.html 第1章 +---------------------------------------------------+|                 写一个块设备驱动                  |+---------------------------------------------------+| 作者:赵磊