首页
学习
活动
专区
圈层
工具
发布

linux usb端点

一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。

12.2K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DMA方式

    1.DMA方式的特点 主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。...2.DMA控制器的组成 对数据传送过程中进行控制的硬件称为DMA控制器(DMA接口)。...当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后让出系统总线,由DMA控制器接管总线进行数据传送。 1)接受外设发出的DMA请求,并向CPU发出总线请求。...DMA请求触发器:每当I/O设备准备好数据后给出一个控制信号,使DMA请求触发器置位。...由此可见,DMA控制器必须具有控制系统总线的能力。 3.DMA的传送方式 主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时。不通过CPU。

    4.5K12

    32.Linux-2440下的DMA驱动(详解)

    DMA中断 1.1在linux中,分配释放DMA缓冲区,只能使用以下几个函数 1)  /*该函数只禁止cache缓冲,保持写缓冲区,也就是对注册的物理区写入数据,也会更新到对应的虚拟缓存区上*/ void...和DMASKTRIGn[1]=1才有效,DMA传输时,该位自动清0 1.3接下来就开始讲linux注册DMA中断 首先,DMA的每个通道只能有一个源- >目的,所以输入命令 cat /proc/interrupts...,找到DMA3中断未被使用 所以在linux中使用: request_irq(IRQ_DMA3, s3c_dma_irq, NULL, "s3c_dma", 1);// s3c_dma_irq:中断服务函数...,还是直接两个地址之间的拷贝 -> 2.2)若是DMA启动,则设置DMA的相关硬件,并启动DMA传输 2.1 所以,驱动代码如下所示: #include linux/module.h> #include...linux/kernel.h> #include linux/fs.h> #include linux/init.h> #include linux/delay.h> #include linux

    4.8K90

    什么是DMA?DMA究竟有多快!

    直接内存访问(Direct Memory Access,DMA):在计算机体系结构中,DMA 是一种数据传输方式,允许外部设备直接访问计算机的内存,而无需通过中央处理单元(CPU)的干预。...那么,DMA究竟有多快呢? 实践出真知 恰好,最近有个多通道数据采集的项目,受限于通道数多、分辨率高,而系统带宽有限,为了尽可能充分利用有限带宽,就得想办法优化时序,把时间都留给数据采集和传输。...优化方向就是DMA。 硬件链路是ADC通过SPI接口将数据发送给STM32单片机,单片机再将数据发送到上位机。 咱们的目标就是优化SPI这边,先看普通采集模式。...再看下,开启DMA之后的效果。SPI可以连续工作,时钟速率稳定在20MHz,高效工作。 这就是DMA的强大之处! 问题来了,为什么上图中的波形,有这么大的震荡呢?

    1.3K10

    宋宝华:那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)

    创作目的 互联网、Linux内核书籍上充满了各种关于Linux DMA ZONE和dma_alloc_coherent、dma_map_single等的各种讲解,由于很多童鞋缺乏自身独立的思考,人云亦云...那么ISA上面假设有个网卡,要DMA,超过16MB以上的内存,它根本就访问不到。所以Linux内核干脆简单一点,把16MB砍一刀,这一刀以下的内存单独管理。...比如我在CSR工作的时候,CSR的primaII芯片,尽管除SD MMC控制器以外的所有的DMA都可以访问整个4GB内存,但MMC控制器的DMA只能访问256MB,我们就把primaII对应Linux的...下面我们架空历史,假设有一个如下的芯片,里面有5个DMA,A、B、C都可以访问所有内存,D只能访问32MB,而E只能访问64MB,你觉得Linux的设计者会把DMA ZONE设置为多大?...进而我也希望你不要把本文所说的外设想象成狭义的就是USB、网卡、I2C这种,本文所述CPU眼里的外设本身也可能是一个带运算能力的加速器、video处理器、GPU等。

    9.9K57

    傻傻分不清楚的MDMA, DMA1,DMA2, DMA2D,BDMA?

    如SDRAM, QSPI,SPI等,H743里面DMA比较多,也较复杂,有DMA2D,MDMA, BDMA,DMA1,DMA2等等,使用时候注意区分。 MDMA 先来看看MDMA的框图概览 ?...DMA H743有两个DMA,分别为DMA1和DMA2, ? ? ?...像ADC,UART,SPI,SD卡等外设都支持DMA传输和操作,都有相应例程,比如我在SPI和另一个芯片通信就使用DMA2来传输。 ? ?...DMA的知识和篇章在参考手册中有很多介绍需要详细阅读和参考,结合例程。 DMA2D DMA2D是专门用于图像处理加速的DMA,我们在做屏的驱动时候可以充分考虑使用。 ?...手册中有几十页都是来讲DMA2D的,这个功能还是很好的,如果你使用H743做屏幕类相关产品,这个要用起来。例如我在移植emWIN作为图形界面时候驱动就使用了DMA2D. ? ?

    3.4K20

    LINUX网络子系统中DMA机制的实现

    我们先从计算机组成原理的层面介绍DMA,再简单介绍Linux网络子系统的DMA机制是如何的实现的。 一、计算机组成原理中的DMA 以往的I/O设备和主存交换信息都要经过CPU的操作。...“图1”中的“接口”既包括实现某一功能的硬件电路,也包括相应的控制软件,如 “DMA接口” 就是一些实现DMA机制的硬件电路和相应的控制软件。 “DMA接口”有时也叫做“DMA控制器”(DMAC)。...图1 上周分享“图1”时,刘老师说在DMA方式下, DMA控制器(即DMA接口)也是需要和CPU交流的,但是图中没有显示DMA控制器与CPU交流信息。...总之,在同样的时间内,DMA方式下CPU执行现行程序的时间最长,即CPU的效率最高。 二、Linux网络子系统中DMA机制的实现 1..../include/linux/dma-mapping.h /* * Set both the DMA mask and the coherent DMA mask to the same thing

    5.8K62

    IOMMU(四)-dma remapping

    惠伟:IOMMU(三)-初始化​zhuanlan.zhihu.com DMA remapping就是在DMA的过程中IOMMU进行了一次转换,MMU把CPU的虚拟地址(va)转换成物理地址(pa),IOMMU...的作用就是把DMA的虚拟地址(iova)转换成物理地址(pa),MMU转换时用到了pagetable,IOMMU转换也要用到io pagetable,两者都是软件负责创建pagetable,硬件负责转换...IOMMU的作用就是限制DMA可操作的物理内存范围,当一个PCI设备passthrough给虚拟机后,PCI设备DMA的目的地址是虚拟机指定的,必须要有IOMMU限制这个PCI设备只能操作虚拟机用到的物理内存...DMA类型 Requests without address-space-identifier DMA中只带了source-id,也就是PCI设备的bus/dev/funtion。...passthrough translation 跳过转换,DMA的iova就是pa。 IOMMU工作模式 intel vt-d iommu可以工作于legacy和scale模式。

    2.8K31

    5、DMA 技术

    DMA 技术: DMA 技术,也就是直接内存访问(Direct Memory Access) 技术。...DMA 技术:在进行 I/O 设备和内存的数据传输的时候,数据搬运的工作全部交给 DMA 控制器, 而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。...执行其他任务; 3、DMA 进一步将 I/O 请求发送给磁盘; 4、磁盘收到 DMA 的 I/O 请求,把数据从磁盘读取到磁盘控制器的缓冲区中,当磁盘控制器的缓冲区被读满后, 向 DMA 发起中断信号...,告知自己缓冲区已满; 5、DMA 收到磁盘的信号,将磁盘控制器缓冲区中的数据拷贝到内核缓冲区中,此时不占用 CPU,CPU 可以执行其他任务; 6、当 DMA 读取了足够多的数据,就会发送中断信号给...CPU; 7、CPU 收到 DMA 的信号,知道数据已经准备好,于是将数据从内核拷贝到用户空间,系统调用返回;

    54610
    领券