一:MISC设备驱动简介

MISC的意思是混合,杂项的,因此MISC驱动也叫做杂项驱动,就是我们开发板上的某些外设无法进行分类的时候就可以使用MISC驱动。MISC驱动其实就是最简单的字符设备驱动,通常嵌套在platform总线驱动中,实现复杂的驱动。所有的MISC设备驱动的主设备号都是10,不同的设备使用不同的从设备号。MISC设备会自动创建cdev,不需要像我们之前那样手动创建,因此采用MISC设备驱动可以简化字符设备驱动的编写。

二:驱动框架

1、向Linux注册一个miscdevice设备

struct miscdevice  {int minor;const char *name;const struct file_operations *fops;struct list_head list;struct device *parent;struct device *this_device;const struct attribute_group **groups;const char *nodename;umode_t mode;
};

定义一个MISC设备以后我们需要设置minor,name和fops这三个成员变量。minor表示子设备号,MISC设备的主设备号为10,这个是固定的,需要用户指定子设备号,Linux系统已经预定义了一些子设备号,我们使用时可以从中挑选一个或者自己定义,只要这个设备号没有被其他设备使用:

#define PSMOUSE_MINOR        1
#define MS_BUSMOUSE_MINOR   2   /* unused */
#define ATIXL_BUSMOUSE_MINOR    3   /* un

DeviceDriver(十):MISC驱动相关推荐

  1. Linux 驱动开发 四十六:Linux MISC驱动实验

    misc 的意思是混合.杂项的,因此MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动. MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 p ...

  2. rfid3-micro2440,linux2.6.32.2,写成misc驱动

    接上文的进度,将keil下已经成功的读卡程序写成linux驱动的形式 采用misc来写比较方便简单,仅是为了方便测试,好多都在驱动中实现. 主文件是rfid.c #include "rc52 ...

  3. Linux MISC 驱动实验

    目录 MISC 设备驱动简介 硬件原理图分析 实验程序编写 修改设备树 beep 驱动程序编写 编写测试APP 运行测试 编译驱动程序和测试APP 运行测试 misc 的意思是混合.杂项的,因此MIS ...

  4. linux MISC 驱动模型分析

    linux MISC 驱动模型分析 阅读led驱动程序的代码的时候,没有发现ldd3中提到的各种字符设备注册函数,而是发现了一个misc_register函数,这说明led设备是作为杂项设备出现在内核 ...

  5. 韦东山 IMX6ULL和正点原子_正点原子Linux第五十七章Linux MISC驱动实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第五十七章Linux MISC驱动实验 misc的意思是 ...

  6. 十.四轮车驱动开发之三: 巧用编码器获取电机转速信息

    这是"四轮车驱动控制"系列,分多个小节来介绍: 1. 八.四轮车驱动开发之一:正/逆向运动学分析 2. 九.四轮车驱动开发之二: 配置PWM驱动直流电机 3. 十.四轮车驱动开发之 ...

  7. Linux MISC驱动示例

    misc 的意思是混合.杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动.MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 p ...

  8. Linux MISC 驱动实验-基于正点原子IMX6ULL开发板

    misc 的意思是混合.杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动.MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 p ...

  9. linux驱动开发 | misc驱动

    一.基础知识 misc驱动是用来代替字符设备驱动的手动申请设备号.初始化cdev.添加.创建类.创建设备等等步骤的,只需要用misc_register函数就可以完成以上操作,卸载也是只需要misc_d ...

最新文章

  1. 成为一名更好的程序员:如何阅读源代码
  2. 读懂正则表达式就这么简单
  3. C++ hamming distance汉明距离算法(附完整源码)
  4. qos 流控功能_怎么设置飞鱼星QoS流量控制中的传统流控
  5. 前端学习(3175):react-hello-react之解决跨域问题
  6. pos机未能连接服务器,pos 机链接不了服务器
  7. stm32linux区别,STM32MPU和OpenSTLinux你了解多少?
  8. Oauth2.0认证---授权码模式
  9. docker network bridge模式,自定义(一)
  10. 更改计算机启动读盘,BIOS设置硬盘启动|BIOS启动里怎么更改启动盘
  11. cad查看_微信接收图纸dwg怎么打开?如何手机查看CAD图纸,三步免费教你
  12. ps换脸教程:ps换脸教程步骤具体,怎样选择复制层
  13. elasticsearch-01
  14. PNP三极管作为开关管如何使用(集电极接 负载)
  15. 【饭谈】职业生涯的关键:不破不立
  16. 计算机管理guest用户在哪,电脑来宾账户权限设置怎么设置
  17. GDB调试器——GDB调试器简介
  18. Spinner ArrayAdapter
  19. 哈希表除留取余法的桶个数为什么是质数
  20. 基于MATLAB Coder将matlab代码转换成C代码

热门文章

  1. HINSTANCE 转换 int 正确方法(C++)
  2. 如何确定uboot中的<bord_name>
  3. JSON需要转义的字符
  4. 数据库管理-第七十五期 手把手教你搭19c RAC(20230516)
  5. 3DSlicer21:Windows7+VisualStudio2013构建3DSlicer史上最详细版(Debug)
  6. 跟Howard学LESS之初见LESS
  7. r语言 col_R 语言基础
  8. 第23讲 时序电路设计1
  9. C++进阶之路——基础题04
  10. 从SEED种子数据库还原出其他库