驱动
文章平均质量分 93
zl.rs
希望能够帮助到有需要的朋友早点下班
展开
-
input子系统相关
本文是我学习时所写,非百分之百原创,望指出错误之处。参考资料:input子系统按键处理闲聊linux中的input设备在系统中会出现很多的input设备,比如:键盘、屏幕等等,这些物理设备都会统一的抽象为input设备。用来抽象这些设备的数据结构是struct input_dev结构,该结构如下:struct input_dev { const char *name; const char *phys; const char *uniq; struct input_id id; un原创 2021-01-03 09:02:35 · 258 阅读 · 2 评论 -
Linux驱动定时器相关
本文为我学习时所写,非百分之百原创,望指出错误之处。参考资料:Linux驱动之定时器(mod_timer)内核定时器的使用(好几个例子add_timer)linux内核中定义了定时器结构,struct timer_list,该结构如下:#include<linux/timer.h>struct timer_list { struct list_head list; unsigned long expires; //定时器到期时间 unsigned lo原创 2020-12-29 20:54:03 · 149 阅读 · 0 评论 -
wake_lock锁机制和device wakeup
本文是我学习时所写,非百分之百原创,望指出错误之处。参考资料:(linux)wake_lock机制linux设备驱动中device_init_wakeupAndroid的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作。wake_lock一般在关闭lcd、tp但系统仍然需要正常运行的情况下使用,比如听歌、传输很大的文件等。以下为struct wake_lock结构:enum { WAKE_LOCK原创 2020-12-29 20:51:38 · 1545 阅读 · 0 评论 -
LINUX设备驱动PLATFORM(平台)总线相关
在总线模型中,device和driver是由虚拟总线来进行管理的。struct bus_type对象就是抽象的总线,就是由这个对象来对设备和驱动进行管理,以下便是该对象的部分成员。struct bus_type { const char *name; // 总线名字 struct bus_attribute *bus_attrs; // 该总线的属性 struct device_attribute原创 2020-12-27 14:39:29 · 613 阅读 · 1 评论 -
设备树相关
常用属性1、 #address-cells属性和、#size-cells属性cell 指一个 32 位的数值,address-cells:address 要用多少个 32 位数来表示;size-cells:size 要用多少个 32 位数来表示。例如描述一段内存的起始地址和大小:/ { #address-cells = <1>; #size-cells = <1>; memory { reg = <0x80000000 0x20000000>; };}原创 2020-12-26 20:16:36 · 503 阅读 · 0 评论