misc类设备驱动2——misc类设备的简介
以下内容源于朱有鹏嵌入式课程的学习与整理,如有其侵权请告知删除。
一、misc类设备的含义
1、名字含义
misc是英文Miscellaneous的缩写,中文意思是“杂项、混杂”,因此“misc类设备”也叫“杂项设备”或者“混杂设备”。因为这些字符设备不符合预先确定的字符设备范畴,所以归为misc类。
2、目录位置
这类设备相关的文件位于/sys/class/misc/目录下。
3、设备分类
它们属于典型的字符设备。
4、驱动框架这类设备有一套相应的驱动框架:驱动框架的核心层由内核驱动部分的维护者实现,主要体现在drivers/char/misc.c文件;驱动框架的具体操作层有驱动开发人员完成,主要体现在诸如x210-buzzer.c这类文件。
5、misc类的实质
misc是对原始的字符设备注册接口的一个类层次的封装,很多典型的字符设备都可以归类到misc类中,使用misc驱动框架来管理。所有这些设备采用主编号10,次设备号不一样。其实misc_register()就是在调用register_chrdev()是把主设备号这个参数设置为10。
二、misc类设备驱动框架
1、内核驱动部分的维护者实现的部分
drivers/char/misc.c文件主要包括2个关键点:类的创建、开放给驱动开发者的接口。
2、驱动工程师实现的部分
比如x210-buzzer.c文件。
三、本部分学习方法
1、已经有蜂鸣器驱动源码,无需编写,以分析为主。
2、复习并验证前面讲的驱动框架的思维。
3、开始注意一些细节。
misc类设备驱动2——misc类设备的简介相关推荐
- linux设备驱动之总线、设备、驱动
文章转载至多个地方,网上拼凑的一篇文章,说的好听一些的话那就叫自己总结的文章,只 是多次引用啊,哈哈,哎,不管了,反正这个有利用学习进步就好,这是重要的,文章转载过来要经过一篇大脑才能成为自己的,以后 ...
- 新字符设备驱动实验(自动分配设备号、自动创建应用层设备节点、新字符设备注册到内核的结构体)
目录 自动分配和释放设备号 示例代码 新的字符设备注册到内核方法 字符设备结构体(前面的设备号也放进来) cdev_init结构体初始化函数 cdev_add 添加到linux内核 cdev_del内 ...
- Linux 设备驱动篇之I2c设备驱动
******************************************************************************************** 装载声明:希望 ...
- 设备驱动模型:总线-设备-驱动
1 设备驱动模型简介 参考 以下内容: Linux 笔记: https://xuesong.blog.csdn.net/article/details/109522945?spm=1001.2014. ...
- linux设备usb节点和硬件接口,所谓设备驱动即驱使硬件设备行动,带你深入理解linux的设备驱动......
原标题:所谓设备驱动即驱使硬件设备行动,带你深入理解linux的设备驱动... 设备驱动最通俗的解释就是"驱使硬件设备行动".操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏 ...
- linux字符设备文件的打开操作,Linux字符设备驱动模型之字符设备初始化
因为Linux字符设备驱动主要依赖于struct cdev结构,原型为: 所以我们需要对所使用到的结构成员进行配置,驱动开发所使用到的结构成员分别为:[unsigned int count;].[de ...
- linux生成驱动编译的头文件,嵌入式Linux字符设备驱动——5生成字符设备节点
嵌入式Linux字符设备驱动开发流程--以LED为例 前言 留空 头文件 #include 查看系统设备类 ls /sys/class 设备类结构体 文件(路径):include/linux/devi ...
- 零基础学Linux内核之设备驱动篇(8)_设备模型
零基础学Linux内核系列文章目录 前置知识篇 1. 进程 2. 线程 进程间通信篇 1. IPC概述 2. 信号 3. 消息传递 4. 同步 5. 共享内存区 编译相关篇 1. GCC编译 2. 静 ...
- linux设备驱动总结,《Linux设备驱动开发详解(第3版)》海量更新总结
本博实时更新<Linux设备驱动开发详解(第3版)>的最新进展. 2015.2.26 几乎完成初稿. [F]是修正或升级:[N]是新增知识点:[D]是删除的内容 第1章 <Linux ...
最新文章
- Network | sk_buff
- GIT SSH连接遇到到的问题
- HBase - Phoenix剖析
- python【数据结构与算法】最小生成树之Kruskal算法
- pythonurllib模块-python3之模块urllib
- 2、MySQL错误日志(Error Log)详解
- mysql 8.0 自定义函数_PHP+Mysql防止SQL注入的方法(life)
- 分享SharpZipLip使用代码
- 变更控制管理流程图_制度是最好的老板,流程就是最好的管理!流程建立法则(附案例)...
- QT信号与槽-启动系统程序以及相关控件介绍
- STM32F103:二.(2)串口控制LED
- [2019徐州网络赛J题]Random Access Iterator
- android恢复微信好友,安卓微信删除好友怎么找回 找回好友详细方法
- sql注入检测工具 mysql_SQL注入测试
- Java数组排序:Java sort()方法
- 极力推荐--不错的delphi 学习网站与论坛---有待补充
- 无偏移谷歌瓦片地址_下载谷歌高清无偏移卫星地图
- 处理器访问内存时,CPU核、cache、MMU如何协同工作
- 记录一些遇见的bug——Lombok和Mapstruct的冲突导致,A component required a bean of type ‘com.XXX.controller.converter.
- 投影幕尺寸参数对照表
热门文章
- pip安装出现ERROR: Could not find a version that satisfies the requirement xxx问题的解决办法
- 2023年系统分析师考试真题回忆
- LNK4075: ignoring /EDITANDCONTINUE due to /INCREMENTAL
- 人机混合智能的五个关键点
- laravel-debugbar 不显示解决办法
- 使用nginx搭建HTTP FLV流媒体服务器
- win10主机无法与Docker容器通讯的坑
- Matlab 汉字乱码问题
- 【笔记总结】高中英语——其一:定语从句
- HIT计算机系统CSAPP大作业