自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雪松研究所

记录工作中的调试、学习、项目笔记

  • 博客(433)
  • 资源 (2)
  • 收藏
  • 关注

原创 RK3399平台入门到精通系列讲解 - 总目录

总目录欢迎大家来到雪松研究所的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:学前必读一、内核开发基础篇RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况RK3399平台开发系列讲解(内核入门篇)1.2、如何高效的阅读Linux内核设备驱动 二、安卓开发基础篇...

2020-11-17 23:20:48 1876 15

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.24、USB OTG Drivers的组成

文章目录主机控制器驱动设计设备控制器驱动设计平台内核版本安卓版本RK3399Linux4.4Android7.1USB OTG 驱动主要完成用户的主从切换命令,主机和设备的寄存器地址传递;主机端和设备端驱动分别完成 USB 高速主机功能和 USB 设备功能,它们独立响应各自的硬件中断;在硬件资源划分上,各个模块占用相对独立的硬件资源,如下图:主机控制器驱动设计根据主机控制器需要完成的功能,可以将主机控制器驱动按照功能划为以下六个模块:USBD 接口模块OH.

2021-01-09 18:26:23 52

原创 RK3399平台开发系列讲解(应用开发篇)1.9、USB 接口的 UVC 摄像头如何进行图像采集

文章目录配置V4L2介绍基于V4L2的图像采集流程平台内核版本安卓版本RK3399Linux4.4Android7.1配置使用 USB 接口的 UVC 摄像头进行图像采集, 只有配置好驱动, 才能进行图像的采集和帧提取, 在图像采集时, 需要加载 USB 驱动和 V4L2 摄像头驱动。进入 Device Drivers --> Multimedia support,选择V4L2 sub-device userspace API选项, 选择V4L platform.

2020-12-31 16:36:30 116

原创 【雪松研究所】博文2020回顾-2021规划

2020博客总结 - 2021博客规划2020年:170篇博客,新增245,184访客,粉丝破千。2020年的博文主题为内核驱动相关子系统的剖析。剖析思路:刨析某个设备驱动前,先要介绍设备模型的核心思想。设备模型可以简单的来说就是将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口。2020年的博文要求是每篇文章必须有图,以做到图文并茂对内核进行剖析。例如下图为USB 设备端gadget框架图解:图解USB设备驱动设备驱动模型Gadget2020年将近三年的博文进.

2020-12-31 13:50:49 193 1

原创 RK3399平台开发系列讲解(内核入门篇)1.25、TTY相关数据结构关系及终端设备的打开

文章目录struct tty_structstruct tty_driverstruct tty_ldisc总结平台内核版本安卓版本RK3399Linux4.4Android7.1在整个终端管理(包括串口通信)中,有如下三个主要的数据结构:struct tty_struct它在整个 tty 管理中处于核心地位。它包含下面的两个结构。任何时候,只要一个新的 tty 设备打开都会创建一个 tty_struct结构的实例,一直到最后设备文件关闭时它才退出 。tty_stru.

2020-12-26 11:57:42 112

原创 RK3399平台开发系列讲解(内核入门篇)1.24、SCSI 总线驱动程序与 USB 块设备驱动程序关系

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1我们的通用串行总线 USB 上的磁盘设备就是通过挂接到 SCSI 的公共驱动程序中才能够被使用的。因此在这里简单谈一下 SCSI 的驱动程序结构层次,以及如何提供给其他驱动程序使用。SCSI 驱动程序首先要向内核注册一个SCSI-CORE 又称为中间层(mid level)的一个核心部分,这个部分将提供最重要的连接机制,使得 SCSI 卡或设备可以以一种统一的试注册到内核中,并以一种公共接口进.

2020-12-19 20:34:21 83

原创 RK3399平台开发系列讲解(网络设备驱动篇)5.8、网络数据包的接收

文章目录数据包的接收平台内核版本安卓版本RK3399Linux4.4Android7.1数据包的接收研读 Linux 内核网络子系统链路层相关源代码是一个重点和难点,弄清楚数据包的处理流程有利于我们更加熟悉网络子系统的运行机理。下图显示了对于接收到的数据帧在链路层是如何被处理的。当网络适配器接收到数据帧时,会触发一个中断, Linux 内核会调用与其相对应的中断处理程序执行一些需要及时处理的任务, 然后在下半部进行其它可以延迟的处理。中断处理程序主要进行以下一些操.

2020-12-19 19:27:08 92

原创 RK3399平台开发系列讲解(内核入门篇)1.23、USB OTG控制器状态切换

文章目录各状态及其跳转A设备角色状态1. A_idle2. A_wait_vrise3. A_wait_bcon4. A_host5. A_suspend6. A_peripheral7. A_wait_vfallB设备角色状态1. B_idle2. B_srp_init3. B_peripheral4. B_wait_acon5. B_host平台内核版本安卓版本RK3399Linux4.4Android7.1各状态及其跳转A设备角色状态首先说明的是 A 设备角色.

2020-12-17 23:11:23 131

原创 RK3399平台开发系列讲解(内核入门篇)1.22、wpa_supplicant

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1

2020-12-14 23:04:05 76

原创 RK3399平台开发系列讲解(内核入门篇)1.21、Linux WIFI的驱动架构(WIFI驱动为啥是动态的加载)

文章目录Linux WIFI框图Linux WIFI驱动软件的分层Linux WIFI的数据链路控制通路数据通路平台内核版本安卓版本RK3399Linux4.4Android7.1从内核的角度来看,驱动程序是一个设备的代表。当内核需要与某个设备交互时,它找到该设备的驱动程序,然后通过标准的接口调用驱动程序的相应函数,从而控制设备。内核不需要知道驱动程序如何工作,也不需要了解设备的细节。设备的细节由驱动程序掌握,驱动程序知道如何掌握一台具体的设备。由于定义了内核与驱动程序.

2020-12-11 22:49:25 155

原创 RK3399平台开发系列讲解(内核入门篇)1.20、USB2.0数据包结构

文章目录USB2.0基本包结构令牌包数据包握手包ACKNAKNYETSTALL平台内核版本安卓版本RK3399Linux4.4Android7.1USB2.0基本包结构USB2.0中,基本包结构起始于SOP到EOP终止, SOP和EOP在D+/-差分对信号线上以特定的电平逻辑状态呈现,实际上SOP和EOP以及SYNC都属于电气层的行为,为理清包的结构和时序关系,这里将它们在协议层呈现出来。CRC域只对数据域有效,不覆盖PID域,因为PID( Packet ID)域有.

2020-12-08 23:15:57 98

原创 RK3399平台开发系列讲解(内核入门篇)1.19、TTY终端设备的抽象

文章目录查看当前系统现存什么类型的终端TTY设备的抽象平台内核版本安卓版本RK3399Linux4.4Android7.1查看当前系统现存什么类型的终端在 Linux 系统中包含了串行端口终端、伪中断、控制终端以及控制台终端等几类终端,可以通过查看驱动文件/proc/tty/drivers 得知存在什么类型的终端。TTY设备的抽象由于终端种类繁多,为了使其具有统一的上层接口函数, Linux 系统对终端设备进行了总结抽象,总结其共性,抽象出共用的上层接口函数,采用.

2020-12-06 00:05:38 176

原创 RK3399平台开发系列讲解(内核入门篇)1.18、device结构体与device_driver结构体的关系

@[toc]

2020-12-05 17:25:05 142

原创 通信模组开发之modem与AP的通信

文章目录目前 的智能机在硬件上 多采用双CPU的架构 , 一 个是基带处理器 , 主要处理数字信号 、语音信号的编码解码以及通信协议 , 另一个是应用 处理器 , 运行操作系统和各种应用程序。RIL``(Radio Interface Layer)为AP上层软件系统和无线设备之间通信提供接 口, 它隐藏了硬件上的一些细节, 提供了AP和BP无线通信的一个抽象层, 负责数据的可靠传输 、 AP侧request的发送以及BP 侧response的解析 。当然 , 除了对网络的支持,RIL也支持SMS 、V.

2020-12-02 22:54:23 124

原创 RK3399平台开发系列讲解(内核入门篇)1.17、pinctrl子系统框架

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1Pinctrl整个驱动模块可以分成 4 个部分:pinctrl api:pinctrl 提供给上层用户调用的接口pinctrl common framework:pinctrl 提供给上层用户调用的接口pinctrl driver:平台需要实现的驱动board configuration:设备 pin 配置信息,格式 device tree source 或者 sys_config如.

2020-11-30 18:38:49 243 1

原创 RK3399平台开发系列讲解(内核子系统篇)2.14、I2C的读写相关数据结构关系

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1在sysfs文件系统中可以找到所有的I2C 设备。所有的I2C设备都存放于/sys/bus/i2c 目录下:因为所有的I2C设备都挂载到相同的I2C 总线上。所以当I2C总线在寻找相应的设备时都会首先找到相应的设备节点。不同设备的设备节点具有不同的name和id。 找到对应设备的逻辑关系将如图:...

2020-11-29 14:23:15 150

原创 RK3399平台开发系列讲解(内核子系统篇)2.13、I2C的读写流程

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1Linux Kernel 中的I2C操作的调用关系:从用户层开始,应用程序会通过调用I2C从设备的驱动来促使 I2C 通讯的发生。在Linux操作系统中,对任何设备的访问都可以通过设备文件节点进行。因此,应用程序会通过client_dev访问到从设备驱动。从设备驱动会把自己注册到一个具体的I2C总线上,而一个I2C总线会对应一个确定I2C总线控制器。从设备驱动在调用 i2c-core 提供的数.

2020-11-29 10:51:54 164

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.23、DW3 USB3的枚举过程

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1在设备接入主机后,主机与设备之间有大量的数据流和控制流交互,一个典型的控制流是设备枚举过程,这过程贯穿Gadget驱动的三层结构,事件的源头是UDC控制驱动中的中断,功能接口位于整个事件流的最上层.如图所示:当UDC层接收到来自主机的Setup包后会向事件缓存写入一个事件并触发一个系统中断, UDC驱动立刻在中断处理函数中解析这个事件,得出事件为输出方向的0端点因控制传输的建立阶段而产生的.

2020-11-28 22:36:22 178

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.22、DW3 USB3控制器介绍

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1DWC USB3.0控制器内核出自公司SYNOPSYS,系统级模块结构如图所示,为软件可配置的架构,不同于传统ASIC设计方法,硬件与软件交互的接口大多定义到内存区域,这对软件设计带来极大的便利;为兼容USB2.0接口,同时实现了USB3.0和USB2.0的物理层接口( PIPE3和UTMI+/ULPI)。硬件设计力求在面积、性能和功耗三者之间达到最佳平衡, IP核内部有6个时钟域,便于集成,.

2020-11-28 22:23:27 194

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.10、UDC 控制器驱动实现

文章目录UDC 控制器驱动实现中断配置与初始化中断与事件缓存控制器初始化设备事件处理平台内核版本安卓版本RK3399Linux4.4Android7.1UDC 控制器驱动实现UDC控制器驱动从层次上讲隶属于USB驱动,负责配置和使能设备控制器,与主机进行USB通信,为上层驱动提供数据请求服务。中断配置与初始化中断与事件缓存DWC3设备控制器的重要特性是舍弃中断标记寄存器,把中断转化为事件(Event)填入由软件事先配置好的一段事件缓存(Event Buffer)中.

2020-11-01 15:15:47 151

原创 [imx6][Linux4.9]IMX6平台 pinctrl子系统

文章目录1、Pinctrl 子系统1.1、Pinctrl 子系统的作用1.2、设备树中PIN的配置信息1.2、设备树中PIN的配置信息中的复用信息解析1.3、PINCTRL子系统驱动主控芯片硬件开发板内核版本imx6100ask_imx6ullLinux-4.9.881、Pinctrl 子系统1.1、Pinctrl 子系统的作用获取设备树中的pin信息;根据获取到的pin信息来设置pin的复用功能;根据获取到的pin信息来设置pin的电气特性。1.2、设备树.

2020-10-31 10:52:34 159

原创 [imx6][Linux4.9]IMX6平台 GPIO 的调试

文章目录1、GPIO debug介绍1.1、/sys/class/gpio目录文件介绍1.2、GPIO 的使用1.3、GPIO 的/sys/kernel/debug/gpio 查看当前gpio信息主控芯片硬件开发板内核版本imx6100ask_imx6ullLinux-4.9.88在说明pinctrl子系统之前,我们要知道如何查看系统的GPIO1、GPIO debug介绍1.1、/sys/class/gpio目录文件介绍Linux开发平台实现了通用GPIO的驱动,用户

2020-10-31 09:14:25 236

原创 [imx6][Linux4.9]IMX6平台设备树的解析

文章目录设备树1、设备树的查看2、设备树源文件分析3、设备树内容的解析函数3.1、查找节点(`node`)的`of`函数3.2、查找属性值(`property`)得`of`函数3.3、其他常用的`OF`函数主控芯片硬件开发板内核版本imx6100ask_imx6ullLinux-4.9.88设备树1、设备树的查看设备树文件:内核设备树的路径:Linux-4.9.88/arch/arm/boot/dtsimx6ull芯片的原始设备树头文件:imx6ul.dtsi.

2020-10-25 12:19:12 158

原创 [imx6][Linux4.9]IMX6平台专栏开篇规划

文章目录主控芯片硬件开发板内核版本imx6100ask_imx6ullLinux-4.9.88本专栏将以imx6为主控,进行一系列的相关驱动实验及讲解。开篇我们首先规划下本专栏的实验内容暂定40篇。平台基础篇: [imx6][Linux4.9]U-boot启动流程分析 [imx6][Linux4.9]休眠唤醒调试步骤 [imx6][Linux4.9]文件系统分区挂载流程 [imx6][Linux4.9]内核的启动方式 [imx6][Linux4.9]内核的.

2020-10-24 11:44:28 194

原创 RK3399平台开发系列讲解(内核入门篇)1.7、sysfs文件系统的数据结构的抽象

文章目录1、底层数据结构1.1、kobject1.2、kset2、中间层数据结构2.1、bus_type2.2、bus_type的注册:bus_register2.3、device2.4、device 向设备模型注册:device_add2.5、 device_driver2.6、驱动向设备模型注册: driver_register平台内核版本安卓版本RK3399Linux4.4Android7.1sysfs 文件系统是一个类似于 proc 文件系统的特殊文件系统,它建立.

2020-10-17 20:55:10 246

原创 RK3399平台开发系列讲解(内核入门篇)1.8、Platform总线驱动详解

文章目录PlatformPlatform总线的数据结构platform_device 结构体platform_driver 结构体platform_driver_register 注册platform_drv_probestruct device_driverbus_typebus_type_private平台内核版本安卓版本RK3399Linux4.4Android7.1Platform为了便于管理 Linux 中越来越多的设备,Linux2.6内核引入了总线(bus.

2020-10-16 23:35:26 226

原创 RK3399平台开发系列讲解(内核子系统篇)2.7、I2C子系统中的数据结构体的抽象

文章目录设备的驱动:i2c_driver设备:i2c_driver适配器:i2c_adapter通信: i2c_algorithm平台内核版本安卓版本RK3399Linux4.4Android7.1设备的驱动:i2c_driver一个 i2c 设备的驱动程序由 include/linux/i2c.h 文件中的 i2c_driver 数据结构描述:struct i2c_driver { int id; char name[32]; int (*attach_.

2020-10-11 21:56:58 339

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.11、PCIE 高速数据采集卡驱动程序

文章目录驱动模块加载pci_driver 结构注册PCIE 驱动支持的硬件设备平台内核版本安卓版本RK3399Linux4.4Android7.1当PCIE设备插入插槽后,一旦驱动加载,驱动程序就对设备进行相应的初始化工作,该设备的相应资源就被系统分配完成,通过与应用程序的配合就可以完成相应的功能。而一旦设备移除,驱动就应该卸载设备占有的相关资源。驱动模块加载驱动程序是以模块的方式被加载入内核,当insmod命令加载内核模块时,模块的加载函数将自动为内核所执行,模块.

2020-10-08 22:08:32 716 1

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.12、PCI Express 设备层

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1在 PCI Express 规范中定义了一种分层的设备体系结构,这些层分别是处理层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。在垂直方向上,它们又可以进一步地分为两个部分,和出站流量相关的称为发送部分,和入站流量相关的称为接收部分。PCI Express 设备的层次结构如图:对应于设备中这三个层的功能,定义了三.

2020-10-08 21:30:34 247

原创 RK3399平台开发系列讲解(内核子系统篇)2.4、Linux内核I2C子系统框架图解

文章目录1、Linux I2C子系统框架匹配注册i2c_client平台内核版本安卓版本RK3399Linux4.4Android7.11、Linux I2C子系统框架Linux 下 I2C 子系统架构,主要分为三个部分:核心层提供主机适配器驱动和设备驱动的管理并提供上层访问接口;总线驱动层是 I2C 主机适配器驱动和通信算法的实现,可以产生满足I2C通信协议的电平序列;最后 I2C 设备驱动是对子系统框架中外部设备的抽象,它通过核心层与适配器联系。I2C .

2020-10-03 16:24:05 389

原创 RK3399平台开发系列讲解(内核子系统篇)2.1、GPIO子系统框架图解

文章目录1、Linux GPIO子系统框架2、结构体的抽象2.1、GPIO描述符 gpio_desc2.2、GPIO操作集抽象:gpio_chip2.3、GPIO设备:gpio_device3、向 Gpiolib 注册你的 GPIO:gpiochip_add平台内核版本安卓版本RK3399Linux4.4Android7.11、Linux GPIO子系统框架在Linux中,GPIO 子系统大致分为 3 层:GPIO 硬件GPIO 硬件驱动层抽象驱动框架从下到.

2020-10-03 14:18:53 449

原创 RK3399平台开发系列讲解(内核子系统篇)2.6、图解USB设备驱动设备驱动模型Gadget

文章目录1、Linux USB 子系统2、Linux USB 设备驱动结构2.1、UDC 设备控制器层2.2、Gadget设备层2.3、Gadget 功能驱动层1、Linux USB 子系统Linux系统内核中早已集成了较为完善的USB协议栈,由于其规模庞大,包含多个类别的设备驱动,所以Linux系统中的USB协议栈也被称为USB子系统。2、Linux USB 设备驱动结构Gadget驱动指的是运行在设备中的固件,也就是USB设备驱动模型。Linux Gadget 三个软件层:USB设备控.

2020-09-20 16:55:06 5397 13

原创 RK3399平台开发系列讲解(代码管理篇)1.1、系统代码修改规范

文章目录一、背景及问题:二、 思路和方法:1. 针对 TAB 处理:2. 针对回车换行的处理:3. 修改的识别:平台内核版本安卓版本RK3399Linux4.4Android7.1一、背景及问题:系统代码因为主要考虑基于原厂提供的公版代码做修改, 且涉及自主修改,公版 patch, 多人维护交叉修改等问题。为统一格式, 方便代码识别,增加可读性。特别定义此规范。二、 思路和方法:规范主要是针对系统代码修改的, 分成三部分, 分别是针对 TAB 处理, 针对回车换行的.

2020-09-13 18:10:09 686

原创 RK3399平台开发系列讲解(代码管理篇)1.2、gerrit服务器操作基本方法

文章目录一. 背景及问题:二. 思路和方法:1. 代码提交:2. 代码审批:平台内核版本安卓版本RK3399Linux4.4Android7.1一. 背景及问题:新的代码服务器采用gerrit 管理, 因为代码需要审查之后才能提交, 所以, 不能提交方法和之前的操作有很大的不同, 此文档用于指引服务器代码相关的基本操作: 代码提交, 审批, 代码合并等基本方法.二. 思路和方法:1. 代码提交:代码提交是RD人员必需有的权限.如取代码:git clone s.

2020-09-13 18:01:51 784

原创 [HarmonyOS][鸿蒙专栏开篇]快速入门OpenHarmony的LiteOS微内核

文章目录1、获取源码2、什么是LiteOS3、LiteOS的目录介绍4、LiteOS 中Make体系5、LiteOS 中Kconfig的配置5.1、顶层Kconfig5.2、具体板级的deconfig文件6、编译7、顶层目录下的config.mk文件主要完成如下功能的配置:1、获取源码OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金会(OpenAtom Foundation)开源。第一个开源版本支持在128KB~128MB设备上运行,欢迎参加开源社区一起持续演进。代码.

2020-09-13 16:13:18 32029 28

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.5、USB设备端中断的调度详解

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1USB 设备端驱动程序的调度思想是被动的接收主机端的传输命令,通过中断触发的方式完成主机端的数据传输。当产生设备端中断时候,设备控制器驱动程序首先判断中断类型。当为批量传输端点 IN 中断的时候,驱动程序会将该 EP 下链接的 REQ 中的数据依次的写入 USB2.0 OTG IP 的设备控制器的内存区;当为批量传输 OUT 中断的时候,驱动程序会将 USB2.0 OTG IP 的设备控制器内存.

2020-09-12 16:51:22 383

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.4、USB详解Gadget 驱动程序设计

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1当把运行 Linux的开发板模拟为 USB 海量存储器时,开发板中的底层 USB 控制器行使 USB 设备控制器的功能,运行的是 UDC 驱动,而在 UDC 驱动之上还需要另外一个驱动,即file storage驱动,这一驱动被称为 gadget 驱动。Gadget 驱动程序的框架如图所示。由图可知,Gadget驱动程序分为文件存储、串口、Ethernet等。本设计只需要实现文件存储类型的Ga.

2020-09-06 23:39:39 604

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.3、USB Gadget 系统核心数据结构

文章目录硬件层描述结构传输数据描述上层驱动描述平台内核版本安卓版本RK3399Linux4.4Android7.1当今的 USB 设备种类非常繁多,USB 协议根据功能和特征对设备进行分类,然后对不同类别的设备指定不同的操作规范。例如当前的音频类、视频类设备等,它们都具有各自不同的操作协议。在 Gadget 框架中,这些不同类型设备 Gadget功能的实现就是要靠上层 Gadget 功能驱动程序来完成。下层的 UDC 芯片驱动层主要实现 usb_ep_ops 和usb_.

2020-09-06 10:44:41 243

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.13、Linux USB Host驱动框架

文章目录USB 总线的初始化USB 设备的枚举平台内核版本安卓版本RK3399Linux4.4Android7.1USB 总线的初始化首先直接上大图:USB 控制器(连同根集线器)连接在 PCI 总线上,是一个 PCI 设备,在 PCI总线的初始化过程中也会受到枚举。PCI设备的初始化完成以后,在 PCI 总线树中就有了代表着具体 USB 总线控制器的 pci_dev 数据结构,并为控制器的 I/O区间和 RAM 区间分配和设置了总线地址。我们将以 XHCI USB.

2020-09-05 01:41:02 246

原创 RK3399平台开发系列讲解(高速设备驱动篇)6.2、图解USB Gadget 子系统分层结构

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1Linux 操作系统的 USB 设备端 Linux Gadget 系统是 Linux 实现 USB 设备端驱动的子系统,其源代码主要分布在/drivers/usb/gadget 目录下, 主要有 USB device 的海量存储设备、串口设备、网络设备等设备驱动程序及各种 USB device控制器芯片的芯片驱动程序。Linux Gadget 子系统主要分为三层,如上图所示:第一层为设备控.

2020-09-03 23:55:20 316

MLX90640红外开发资料包.zip

https://blog.csdn.net/qq_33487044/article/details/86565536?ops_request_misc=%7B%22request%5Fid%22%3A%22158200180319726869063373%22%2C%22scm%22%3A%2220140713.130056874..%22%7D&request_id=158200180319726869063373&biz_id=0&utm_source=distribute.pc_search_result.none-task 博客地址

2020-02-18

rkisp的驱动代码

rkisp的驱动代码首先看一下很设备树匹配用的of_device_id 目录:device/media/platform/rk-cif/cif_cif10_v4l2.c: 博客https://blog.csdn.net/qq_33487044/article/details/82191349

2020-10-21

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除