Linux驱动开发
文章平均质量分 85
Linux驱动开发的深入学习
神秘的羔羊
技术拉近你我
展开
-
Linux驱动开发—— input子系统
我们平时使用的按键、鼠标、键盘、触摸屏等都属于输入(input)设备, Linux 内核专门有一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息, input 核心层负责处理这些事件。input输入子系统分为3层:上层(input事件驱动层)、中层(input核心层)、下层(input设备驱动层)原创 2020-04-08 12:30:07 · 533 阅读 · 0 评论 -
设备驱动模型底层架构
Linux设备驱动模型是一个比较抽象的概念,它对系统的所有设备和驱动进行了抽象,形成了复杂的设备树型结构,采用面向对象的方法,抽象出了 device 设备、 driver 驱动、 bus 总线和 class 类等概念,所有已经注册的设备和驱动都挂在总线上,总线来完成设备和驱动之间的匹配。总线、设备、驱动以及类之间的关系错综复杂,在 Linux 内核中通过 kobject、 kset 和 subs...原创 2020-04-04 22:33:22 · 733 阅读 · 0 评论 -
自动创建设备节点
我们在编写好驱动的时候(单纯注册字符设备),使用insmod或者modprobe 加载驱动程序以后还需使用命令“mknod”手动创建设备节点。这样比较繁琐,Linux提供了一种机制来自动创建设备节点(在驱动模块加载后自动在/dev 目录下创建对应的设备文件。) :mdev 机制udev 是一个用户程序,在 Linux 下通过 udev 来实现设备文件的创建与删除, udev 可以检测系统中...原创 2020-03-29 23:06:43 · 821 阅读 · 1 评论 -
字符设备的注册以及删除
linux字符设备驱动开发的重点是使用 register_chrdev 函数注册字符设备,当不再使用设备的时候就使用unregister_chrdev 函数注销字符设备。这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。我们先来看看 register_chrdev有什么不足的地方:static inline...原创 2020-03-29 16:51:19 · 849 阅读 · 0 评论 -
Linux 设备号
Linux 中每个设备都有一个设备号,设备号由主设备号和次设备号两部分组成,主设备号表示某一个具体的驱动,次设备号表示使用这个驱动的各个设备。 Linux 提供了一个名为 dev_t 的数据类型表示设备号, dev_t 定义在文件 include/linux/types.h 里面,定义如下:typedef __kernel_dev_t dev_t;typedef __u32 __kern...原创 2020-03-29 16:42:03 · 367 阅读 · 0 评论