07 2020 档案
摘要:等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。 1 数据结构 1.1 等待队列头 等待队列结构如下,因为每个等待队列都可以再中断时被修改,因此,在操作等待队列之前必须获得一个自旋锁。 定义位于:linux-3.10.73\include
阅读全文
摘要:MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架。 1 MTD子系统框架 (1)设备节点层:MTD框架可以在/dev下创建字符设备节点(
阅读全文
摘要:内核自带的USB键盘驱动 :/drivers/hid/usbhid/usbkbd.c 1 usb键盘驱动的定义 1 static struct usb_driver usb_kbd_driver = { 2 .name = "usbkbd", 3 .probe = usb_kbd_probe, 4
阅读全文
摘要:内核自带的USB鼠标驱动位于:/drivers/hid/usbhid/usbmouse.c 1 usb mouse driver 1 static struct usb_driver usb_mouse_driver = { 2 .name = "usbmouse", 3 .probe = usb_
阅读全文
摘要:尽管 USB 本身所属设备驱动的结构与其不挂在 USB 总线上时完全相同,但是在访问方式上却发生了很大的变化,例如,对于字符设备而言,尽管仍然是 write()、read()、ioctl()这些函数,但是在这些函数中,与 USB 设备通信时不再是 I/O 内存和 I/O 端口的访问,而是URB 即U
阅读全文
摘要:设备驱动程序是操作系统内核和机器硬件之间的接口,由一组函数和一些私有数据组成,是应用程序和硬件设备之间的桥梁。在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。 设备驱动程序是内核的一部分,主要完成以下功能:对设备的初始化和释放;把数据从内核传送到硬件设备和
阅读全文
摘要:1 热插拔的基本概念 1.1 usb热插拔的硬件原理 在USB集线器(hub)的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。 而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接
阅读全文
摘要:usb驱动目录drivers/usb/ usb/serial:usb 串行设备驱动 (例如usb 3G卡、蓝牙等); usb/storage:usb 大储量磁盘驱动(u盘); usb/host:usb host usb主机控制器驱动(嵌入式otg:dwc_otg); usb/core:usb 核心一
阅读全文
摘要:在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的。一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元:(1)USB总线接口指的是USB设备中的串行接口引擎(SIE);(2)USB逻辑设备被
阅读全文
摘要:1 字符设备的实例 以led驱动的简单字符设备驱动 led_driver.c 1 #include <linux/module.h> 2 #include <linux/kernel.h> 3 #include <linux/fs.h> 4 #include <linux/init.h> 5 #in
阅读全文
摘要:1 可以转换成设备的节点 首先,要说明的是设备树最初是为了解决大量重复的platform_device在mach-xx目录下,但在实现的过程重,设备树体现的是一个电路板的信息,添加了bootargs,memory,clock,interrupt等非platform_device的节点,这样就不能对所
阅读全文

浙公网安备 33010602011771号