dma

    3热度

    1回答

    我想在我的char驱动程序的DMAble存储器上实现mmap方法。 起初我想用DMA API来实现它,然后用于PCI设备。 dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t gfp) dma_alloc_coherent的第一个参数是指向结构设备的指针。 对于ISA或EISA它可以

    0热度

    1回答

    如何DMA实际工作是理论,我知道; - http://en.wikipedia.org/wiki/Direct_memory_access 但在规划如何,我们对其进行管理? 我正在使用RPI &期待使用DMA执行以下操作。 假设如果我想使用SPI ----读取数据---从SD卡读取到USART。 我是否必须为数据传输写程序&将它们给予dma或者它是由DMA tx & rx通道处理? 什么是linu

    1热度

    1回答

    我有一个简单的理论问题。我知道的DMA通常有半满或全中断。如果我想使用DMA从外设传输数据,我如何确保获得所有数据,因为数据可能不在dma传输边界。 例如,串口可能会发送5个字节,我会得到和中断前4个结合在一起(假设dma大小为4),但没有为第5个。人们通常用什么方法来解决这个问题。

    1热度

    1回答

    某些Linux DMA专家可以帮助我理解这个概念。 a>我是DMA编程新手。 DMA如何为ARM控制器实际工作? b>如果我们使用mmap向驱动程序发送数据。我们如何将这与DMA同步呢? c>使用DMA我们在软件中实际需要做什么? d>这个dma输入输出通道是什么? 是否有一些示例代码..是DMA的新手,它将有助于我理解这个概念。

    2热度

    1回答

    硬盘I具有基于ARM设备,运行Linux,其被连接到摄像头,并且我想要存储所捕获的帧有效HD。 我在用户空间中发展,但可以修改随意 司机我编码使用C 帧被使用DMA写入存储器,和我有自己的物理内存的指针。 我能控制所有的帧捕获流量,而当帧缓冲区是稳定的,我可以告诉(从Video4Linux的司机dqueued) Linux的版本是3.0.35 我熟悉的内核源代码代码,不是专家,但我能找到自己的路,

    2热度

    1回答

    我有一个带有两种RAM的ARM平台。有一些SDRAM和内部SRAM。平台上的USB控制器仅需要驻留在内部SRAM上的DMA地址。目前,我正在使用一个通用驱动程序,它从调用dma_pool_alloc获取可用的DMA地址。 有没有办法告诉内核只给内部SRAM而不是SDRAM的USB驱动程序DMA地址?

    1热度

    1回答

    我想做多个帧的dma发送一个大帧(巨型)。我能够发送正常帧(大小为1500)。我需要对dma有所怀疑。 dma_map_single()相对于其他API的真正优势是什么。我们可以用dma_map_page做所有事情,对吧? 假设我们需要发送一个司机一个大框架(珍宝),我有存储在此框架中多个缓冲区。这些缓冲区在物理内存或虚拟内存中不是连续的。但是这些缓冲区在内核空间中。我们怎样才能把它作为一个框架发

    0热度

    1回答

    同时调用这个函数: static inline void writel(unsigned int v, volatile void __iomem *addr) { *(volatile unsigned int __force *)addr = cpu_to_le32(v); } 是否该地址是absoulute或通过MMU? DMA - 写入地址是否由MMU翻译? 为什么寄存器

    0热度

    1回答

    我继续在FGPA驱动程序上运行我的work。 现在我添加了OpenCL支持。所以我有以下test。 这只是添加NUM_OF_EXEC次写入和读取相同缓冲区的请求,然后等待完成。 每个写入/读取请求在驱动程序中序列化,并作为DMA事务顺序执行。 DMA相关代码可以查看here。因此驱动程序需要一个事务,执行它(rsp_setup_dma和fpga_push_data_to_device),等待来自F

    2热度

    1回答

    我正在使用基于ARM的处理器运行Linux(3.0.35)板。主板有1GB内存,连接到一个快速的SSD高清和一个500万像素的摄像头。 我的目标是捕获高分辨率图像并直接写入这些磁盘。 一切顺利,直到我试图挽救一个很长视频(超过1GB的数据), 节约了大量文件之后,似乎我无法重新加载摄像头驱动程序 - 它失败为流分配足够大的DMA内存块(当调用dma_alloc_coherent()时)。我把它缩小