以下内容源于朱有鹏嵌入式课程的学习与整理,如有其侵权请告知删除。

一、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类设备的简介相关推荐

  1. linux设备驱动之总线、设备、驱动

    文章转载至多个地方,网上拼凑的一篇文章,说的好听一些的话那就叫自己总结的文章,只 是多次引用啊,哈哈,哎,不管了,反正这个有利用学习进步就好,这是重要的,文章转载过来要经过一篇大脑才能成为自己的,以后 ...

  2. 新字符设备驱动实验(自动分配设备号、自动创建应用层设备节点、新字符设备注册到内核的结构体)

    目录 自动分配和释放设备号 示例代码 新的字符设备注册到内核方法 字符设备结构体(前面的设备号也放进来) cdev_init结构体初始化函数 cdev_add 添加到linux内核 cdev_del内 ...

  3. Linux 设备驱动篇之I2c设备驱动

    ******************************************************************************************** 装载声明:希望 ...

  4. 设备驱动模型:总线-设备-驱动

    1 设备驱动模型简介 参考 以下内容: Linux 笔记: https://xuesong.blog.csdn.net/article/details/109522945?spm=1001.2014. ...

  5. linux设备usb节点和硬件接口,所谓设备驱动即驱使硬件设备行动,带你深入理解linux的设备驱动......

    原标题:所谓设备驱动即驱使硬件设备行动,带你深入理解linux的设备驱动... 设备驱动最通俗的解释就是"驱使硬件设备行动".操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏 ...

  6. linux字符设备文件的打开操作,Linux字符设备驱动模型之字符设备初始化

    因为Linux字符设备驱动主要依赖于struct cdev结构,原型为: 所以我们需要对所使用到的结构成员进行配置,驱动开发所使用到的结构成员分别为:[unsigned int count;].[de ...

  7. linux生成驱动编译的头文件,嵌入式Linux字符设备驱动——5生成字符设备节点

    嵌入式Linux字符设备驱动开发流程--以LED为例 前言 留空 头文件 #include 查看系统设备类 ls /sys/class 设备类结构体 文件(路径):include/linux/devi ...

  8. 零基础学Linux内核之设备驱动篇(8)_设备模型

    零基础学Linux内核系列文章目录 前置知识篇 1. 进程 2. 线程 进程间通信篇 1. IPC概述 2. 信号 3. 消息传递 4. 同步 5. 共享内存区 编译相关篇 1. GCC编译 2. 静 ...

  9. linux设备驱动总结,《Linux设备驱动开发详解(第3版)》海量更新总结

    本博实时更新<Linux设备驱动开发详解(第3版)>的最新进展. 2015.2.26 几乎完成初稿. [F]是修正或升级:[N]是新增知识点:[D]是删除的内容 第1章 <Linux ...

最新文章

  1. Network | sk_buff
  2. GIT SSH连接遇到到的问题
  3. HBase - Phoenix剖析
  4. python【数据结构与算法】最小生成树之Kruskal算法
  5. pythonurllib模块-python3之模块urllib
  6. 2、MySQL错误日志(Error Log)详解
  7. mysql 8.0 自定义函数_PHP+Mysql防止SQL注入的方法(life)
  8. 分享SharpZipLip使用代码
  9. 变更控制管理流程图_制度是最好的老板,流程就是最好的管理!流程建立法则(附案例)...
  10. QT信号与槽-启动系统程序以及相关控件介绍
  11. STM32F103:二.(2)串口控制LED
  12. [2019徐州网络赛J题]Random Access Iterator
  13. android恢复微信好友,安卓微信删除好友怎么找回 找回好友详细方法
  14. sql注入检测工具 mysql_SQL注入测试
  15. Java数组排序:Java sort()方法
  16. 极力推荐--不错的delphi 学习网站与论坛---有待补充
  17. 无偏移谷歌瓦片地址_下载谷歌高清无偏移卫星地图
  18. 处理器访问内存时,CPU核、cache、MMU如何协同工作
  19. 记录一些遇见的bug——Lombok和Mapstruct的冲突导致,A component required a bean of type ‘com.XXX.controller.converter.
  20. 投影幕尺寸参数对照表

热门文章

  1. pip安装出现ERROR: Could not find a version that satisfies the requirement xxx问题的解决办法
  2. 2023年系统分析师考试真题回忆
  3. LNK4075: ignoring /EDITANDCONTINUE due to /INCREMENTAL
  4. 人机混合智能的五个关键点
  5. laravel-debugbar 不显示解决办法
  6. 使用nginx搭建HTTP FLV流媒体服务器
  7. win10主机无法与Docker容器通讯的坑
  8. Matlab 汉字乱码问题
  9. 【笔记总结】高中英语——其一:定语从句
  10. HIT计算机系统CSAPP大作业