Linux驱动之混杂设备(misc)

字符设备之混杂设备:

定义混杂设备:

struct misdevice{

int  minor; //为什么这里只有次设备号,因为混杂设备是一种在                          /////////////////////////Linux系统默认主设备号为10 的特殊字符设备。

const char  *name;

const struct  file_operation *fops;

struct list_head list;

struct device  *parent;

struct device *this _device;

}

向Linux系统注册混杂设备驱动:
int misc_register(struct misdevice *misc) //和函数: int cdev_add(struct cdev ////////////////////////////////////////////////////////////////////////*,dev_t,unsigned);  相同。

卸载混杂设备:

int misc_deregister(struct misdevice *misc)

注意:混杂设备的初始化没有使用函数cdev_init(stuct cdev *,const struct file_operation *)来将将设备描述结构和设备操作函数集联系起来。

原文地址:https://www.cnblogs.com/big-devil/p/8589497.html

时间: 2024-10-25 07:41:20

Linux驱动之混杂设备(misc)的相关文章

驱动笔记 - 混杂设备常用函数

#include <linux/miscdevice.h>混杂设备:主设备号为10的字符设备struct miscdevice{ int minor; //次设备号 const char *name; const struct file_operations *fops; struct list_head list; struct device *parent; struct device *this_device;} 混杂设备注册int misc_register (struct miscd

Linux 驱动之块设备 (一)

1.引言 块设备的驱动比字符设备的难,这是因为块设备的驱动和内核的联系进一步增大,但是同时块设备的访问的几个基本结构和字符还是有相似之处的. 有一句话必须记住:对于存储设备(硬盘~~带有机械的操作)而言,调整读写的顺序作用巨大,因为读写连续的扇区比分离的扇区快. 但是同时:SD卡和U盘这类设备没有机械上的限制,所以像上面说的进行连续扇区的调整显得就没有必要了 2.块设备概念 块设备(blockdevice) --- 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存

Linux驱动之平台设备驱动模型简析(驱动分离分层概念的建立)

Linux设备模型的目的:为内核建立一个统一的设备模型,从而有一个对系统结构的一般性抽象描述.换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了. 对于整个设备总线驱动模型的样子,如下图.简单来说,bus 负责维护注册进来的devcie 与 driver,每注册进来一个device 或者 driver 都会调用 Bus->match 函数

linux驱动之字符设备

第一部分:字符设备工作过程1.系统调用和驱动程序的关联关键结构体:struct file_operation:file_operation结构体的每一个成员的名字都对应着一个系统调用.用户进程利用系统调用在对设备文件进行诸如read/write操作时,系统调用通过设备文件的主设备号找到相应的设备驱动程序,然后读取这个数据结构相应的函数指针,接着把控制权交给该函数.这是linux的设备驱动程序工作的基本原理.编写设备驱动程序的主要工作就是编写子函数,并填充file_operations的各个域.

9、Linux驱动的杂项设备

杂项设备,是字符设备中的特殊,它的主设备号,是 10,不同的杂项设备,通过次设备号进行区分. 1.注册与注销 int misc_register(struct miscdevice * misc) 完成杂项设备的注册, int misc_deregister(struct miscdevice *misc) 可见,设备的注册和注销,都是设置到 struct miscdevice  结构体 2.struct miscdevice  结构体 struct miscdevice { int minor

Linux驱动之平台设备

<平台设备设备驱动> a:背景: 平台总线是Linux2.6的设备驱动模型中,关心总线,设备和驱动这3个实体.一个现实的Linux设备和驱动通常需要挂接在一种总线上(比如本身依附于PCI,USB,IIC,SPI等设备而言).但是在嵌入式系统里面,SoC系统即集成的独立外设控制器,挂接在SoC内存空间的外设却没有这样的总线依附,为了和Linux设备驱动模型理论相互统一,Linux系统开发了Platform_bus这种虚拟总线,相应的设备叫做platform_device ,相应的驱动叫platf

13 Linux驱动之平台设备

一 platform子系统 1.对平台设备描述 struct platform_device { const char * name; //设备名字 int id; // -1 struct device dev; //通用设备描述 u32 num_resources; //资源的个数 struct resource * resource;//资源 //如果是在driver的id_table中匹配成功,id_entry就会记录id_table匹配的项 const struct platform_

linux驱动面试题整理

资料来自网上,简单整理,答案后续补充...... 1.字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件? 答:mknod命令结合设备的主设备号和次设备号,可创建一个设备文件. 评:这只是其中一种方式,也叫手动创建设备文件.还有UDEV/MDEV自动创建设备文件的方式,UDEV/MDEV是运行在用户态的程序,可以动态管理设备文件,包括创建和删除设备文件,运行在用户态意味着系统要运行之后.那么在系统启动期间还有devfs创建了设备文件.一共有三种方式可

Linux 驱动开发索引

1.嵌入开发环境搭建 Telnet 在 mini2440 上的移植 Opencv-2.4.9 在 mini2440 上的移植 搭建嵌入式开发环境总结 2.Linux 设备驱动 Linux 驱动程序头文件 一步一步学习Linux驱动之驱动模块MakeFile解析 一步一步学习 Linux 驱动之(Kconfig.Makefile) 一步一步学习 Linux 驱动之字符设备 LED 静态编译进 Linux 内核 内核怎么通过主设备号找驱动.次设备号找设备 Linux 驱动之内核空间分配内存 一步一步