随笔分类 -  linux设备驱动

摘要:Linux MMC子系统主要分成三个部分: MMC核心层(sdio core):完成不同协议和规范的实现,为host层和设备驱动层提供接口函数。MMC核心层由三个部分组成:MMC,SD和SDIO,分别为三类设备驱动提供接口函数; Host 驱动层(sdio host主设备):针对不同主机端的SDHC 阅读全文
posted @ 2020-09-29 23:03 Action_er 阅读(2221) 评论(0) 推荐(0) 编辑
摘要:SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。 对于SDIO接口的wifi,首先,它是一个 阅读全文
posted @ 2020-09-29 22:56 Action_er 阅读(4559) 评论(0) 推荐(0) 编辑
摘要:1 wifi的定义 Wi-Fi是一种可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它是一个高频无线电信号。[1] 无线保真是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性。有人把使用IEEE 8 阅读全文
posted @ 2020-08-24 22:38 Action_er 阅读(2459) 评论(0) 推荐(0) 编辑
摘要:HOST 部分是针对不同主机的驱动程序,提供与各芯片构架相关的文件,这一部是驱动程序工程师需要根据自己的特点平台来完成的。card(区块层) 与core(核心层)是linux系统封装好了部分,不需要修改。 核心层根据需要构造各种MMC/SD命令,这些命令怎么发送给MMC/SD卡呢?这通过主机控制器层 阅读全文
posted @ 2020-08-19 22:49 Action_er 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:core层作为整个MMC 的核心,这部分完成了不同协议和规范的实现,并为HOST 层的驱动提供了接口函数。 CORE 部分: 这是整个MMC 的核心存,这部分完成了不同协议和规范的实现,并为HOST 层的驱动提供了接口函数。 HOST 部分是针对不同主机的驱动程序,这一部是驱动程序工程师需要根据自己 阅读全文
posted @ 2020-08-18 22:23 Action_er 阅读(1871) 评论(0) 推荐(0) 编辑
摘要:1 SD/MMC卡基础概念 1.1 MMC卡 MMC:MMC就是MultiMediaCard的缩写,即多媒体卡。它是一种非易失性存储器件,体积小巧(24mm*32mm*1.4mm),容量大,耗电量低,传输速度快,广泛应用于消费类电子产品中。 1.2 SD卡 SD:SD卡为Secure Digital 阅读全文
posted @ 2020-08-18 21:41 Action_er 阅读(1874) 评论(0) 推荐(0) 编辑
摘要:MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架。 1 MTD子系统框架 (1)设备节点层:MTD框架可以在/dev下创建字符设备节点( 阅读全文
posted @ 2020-07-14 21:42 Action_er 阅读(6169) 评论(0) 推荐(0) 编辑
摘要:内核自带的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 阅读全文
posted @ 2020-07-14 21:39 Action_er 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:内核自带的USB鼠标驱动位于:/drivers/hid/usbhid/usbmouse.c 1 usb mouse driver 1 static struct usb_driver usb_mouse_driver = { 2 .name = "usbmouse", 3 .probe = usb_ 阅读全文
posted @ 2020-07-14 21:36 Action_er 阅读(878) 评论(0) 推荐(0) 编辑
摘要:尽管 USB 本身所属设备驱动的结构与其不挂在 USB 总线上时完全相同,但是在访问方式上却发生了很大的变化,例如,对于字符设备而言,尽管仍然是 write()、read()、ioctl()这些函数,但是在这些函数中,与 USB 设备通信时不再是 I/O 内存和 I/O 端口的访问,而是URB 即U 阅读全文
posted @ 2020-07-12 23:01 Action_er 阅读(2415) 评论(0) 推荐(0) 编辑
摘要:设备驱动程序是操作系统内核和机器硬件之间的接口,由一组函数和一些私有数据组成,是应用程序和硬件设备之间的桥梁。在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。 设备驱动程序是内核的一部分,主要完成以下功能:对设备的初始化和释放;把数据从内核传送到硬件设备和 阅读全文
posted @ 2020-07-12 23:00 Action_er 阅读(1491) 评论(0) 推荐(0) 编辑
摘要:1 热插拔的基本概念 1.1 usb热插拔的硬件原理 在USB集线器(hub)的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。 而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接 阅读全文
posted @ 2020-07-11 11:32 Action_er 阅读(4580) 评论(0) 推荐(0) 编辑
摘要:usb驱动目录drivers/usb/ usb/serial:usb 串行设备驱动 (例如usb 3G卡、蓝牙等); usb/storage:usb 大储量磁盘驱动(u盘); usb/host:usb host usb主机控制器驱动(嵌入式otg:dwc_otg); usb/core:usb 核心一 阅读全文
posted @ 2020-07-08 22:27 Action_er 阅读(1119) 评论(0) 推荐(0) 编辑
摘要:在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的。一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元:(1)USB总线接口指的是USB设备中的串行接口引擎(SIE);(2)USB逻辑设备被 阅读全文
posted @ 2020-07-07 23:04 Action_er 阅读(622) 评论(0) 推荐(0) 编辑
摘要: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 阅读全文
posted @ 2020-07-05 17:33 Action_er 阅读(294) 评论(0) 推荐(0) 编辑
摘要:1 可以转换成设备的节点 首先,要说明的是设备树最初是为了解决大量重复的platform_device在mach-xx目录下,但在实现的过程重,设备树体现的是一个电路板的信息,添加了bootargs,memory,clock,interrupt等非platform_device的节点,这样就不能对所 阅读全文
posted @ 2020-07-05 16:40 Action_er 阅读(943) 评论(0) 推荐(0) 编辑
摘要:1 概述 网卡的驱动其实很简单,它还是与硬件相关,主要是负责收发网络的数据包,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送, 并将接收到的数据包传递给上层协议。 网卡设备与字符设备和块设备不同, 网络设备并不对应于/dev目录下的文件,不过会存放在/sys/class/net目录下。 阅读全文
posted @ 2020-06-30 22:37 Action_er 阅读(1715) 评论(0) 推荐(0) 编辑
摘要:块设备是i/o设备中的一类, 当我们的应用层对该设备读写时,是按扇区大小来读写数据的,若读写的数据小于扇区的大小,就会需要缓存区, 可以随机读写设备的任意位置处的数据,使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。例如 普通文件(*.txt,*.c等),硬 阅读全文
posted @ 2020-06-27 09:58 Action_er 阅读(1710) 评论(0) 推荐(0) 编辑
摘要:一 I2C核心层源码分析 1 I2C子系统注册函数:i2c_init 定义位于:drivers\i2c\i2c-core.c 1 static int __init i2c_init(void) 2 { 3 int retval; 4 5 retval = bus_register(&i2c_bus 阅读全文
posted @ 2020-06-09 23:00 Action_er 阅读(1969) 评论(0) 推荐(0) 编辑
摘要:1 I2C的总体架构框图如下: 1.1 包括三大部分:I2C核心层、I2C总线驱动和I2C设备驱动。 (1)I2C核心层(i2c-core)提供了I2C总线驱动(适配器)和设备驱动的注册、注销方法,I2C通信方法(”algorithm”)上层的,与具体硬件无关的代码以及探测设备检测设备地址的上层代码 阅读全文
posted @ 2020-06-09 22:09 Action_er 阅读(1128) 评论(0) 推荐(1) 编辑