Linux内核、驱动
Linux内核、驱动
Yumin_Wu
知行合一,守正出奇
展开
-
Linux驱动 | I2C设备驱动(以ds1337.c为例)
本文以 Linux-2.6.22.6 内核树下的 drivers/i2c/chips/ds1337.c 为例, 讨论Linux系统下的I2C设备的驱动代码的主要构成。ds1337是一款 i2c 接口的串行实时时钟芯片。i2c_driver 和 i2c_client 是I2C设备驱动的核心数据结构。I2C 设备驱动要使用 i2c_driver 和 i2c_client 数据结构并原创 2018-01-27 17:58:04 · 1245 阅读 · 0 评论 -
Linux驱动 | USB设备驱动中的URB数据结构
尽管 USB 本身所属设备驱动的结构与其不挂在 USB 总线上时完全相同,但是在访问方式上却发生了很大的变化,例如,对于字符设备而言,尽管仍然是 write()、read()、ioctl()这些函数,但是在这些函数中,与 USB 设备通信时不再是 I/O 内存和 I/O 端口的访问,而贯穿始终的是称为 URB 的 USB 请求块。 USB 请求块(USB request block,urb)是原创 2018-01-22 15:11:39 · 1035 阅读 · 0 评论 -
Linux驱动 | 解读块设备驱动的重要概念
块设备驱动块设备驱动比字符设备驱动要复杂得多,在 I/O操作上表现出极大的不同,缓冲、I/O 调度、请求队列等都是与块设备驱动相关的概念。字符设备与块设备I/O操作的不同:1. 块设备只能以块为单位,接受输入和返回输出;而字符设备则以字节为单位。2. 块设备对于I/O请求有对应的缓冲区,因此可调整顺序进行读写3. 虽然块设备可以随机访问,但是顺序地组织块设备的访问可提高性能原创 2018-01-22 10:56:37 · 2268 阅读 · 0 评论 -
Linux USB 设备驱动
USB 设备驱动的整体结构Linux 实现了以下几类通用的USB设备驱动,并且为它们分配了主次设备号:音频设备类通信设备类HID(人机接口)设备类显示设备类海量存储设备类电源设备类打印设备类集线器设备类在 sysfs (/sys/bus/usb) 和 debugfs (/sys/kernel/debug/usb) 下都可以查看USB设备信息 。设备驱动的抽象使用 usb...原创 2020-02-18 13:51:46 · 644 阅读 · 0 评论 -
Linux SPI 设备驱动
SPI设备驱动的整体结构设备驱动的抽象使用 spi_driver 结构体来表示一个SPI设备驱动。SPI从设备的抽象使用 spi_device 结构体来表示SPI总线上匹配到的从设备,通常它被包含在设备的私有结构体中;在设备驱动中操作SPI设备时,需要先获得此结构体的实例。SPI数据传输的抽象使用 spi_message 结构体来描述一次完整的SPI传输,它通常包含一个或多个 spi_...原创 2020-02-18 13:50:09 · 924 阅读 · 0 评论 -
Linux I2C 设备驱动
I2C设备驱动的整体结构设备驱动的抽象使用 i2c_driver 结构体来表示一个I2C设备驱动。I2C从设备的抽象使用 i2c_device_id 结构体来表示I2C驱动所支持的设备的列表,由 i2c_driver 的 id_table 成员指向这个结构体的一个实例化的数组。static const struct i2c_device_id xxx_table[] = { { "x...原创 2020-02-18 13:47:35 · 1214 阅读 · 0 评论