dma

    5热度

    1回答

    很多设备驱动程序编程指南都建议流式DMA映射(即由dma_map_single()和朋友创建的映射)在尽可能短的时间内保持开放状态,因为它们消耗资源(即IOMMU映射资源(如果平台有一个映射资源),或者当需要时反弹缓冲器)。在我的情况下,我正在使用具有64位DMA的PCIe设备,因此不需要反弹缓冲区(在这种情况下,它似乎也不需要IOMMU的特殊处理,正确?)。数据来自设备(即与DMA_TO_CPU

    0热度

    2回答

    DMA的需求是什么?使用DMA比正常传输有什么优势?我搜查了它,但没有弄清楚。 任何帮助,提前感谢。

    2热度

    1回答

    随着CUDA SDK 5.5,我可以用它来复制数据:从主机 :cudaMemcpy();使用GPU-DMA如果内存固定在主机 :memcpy();或cudaMemcpy();使用CPU内核,如果内存不固定 from gpu:for() { dst[i] = src[i]; }或memcpy();使用GPU核心 from gpu:使用GPU-DMA? 如何使用GPU-DMA在GPU-CUDA代码内核

    0热度

    1回答

    我有这个x86设备和一个尝试分配DMA内存的内核模块。它有一个名为dmasize的参数,可以控制分配内存的大小。 我注意到,当dmasize = 2M时分配成功,但如果更大则不会。即使在启动时。 我听说CONSISTENT_DMA_SIZE有一个限制,但是看到lxr,我无法在arch x86内核3.2中找到它。 不确定它是否相关,但是这是一个32位机器,具有8GB内存和启用pae的内核。 这是调用

    8热度

    2回答

    我正在尝试为HPC工作负载分配DMA缓冲区。它需要64GB的缓冲空间。在计算之间,一些数据被卸载到PCIe卡。我不想将数据复制到由pci_alloc_consistent给出的一堆小小的4MB缓冲区中,我只想创建64个1GB缓冲区,由1GB HugePages支持。 一些背景资料: 内核版本:CentOS的6.4/2.6.32-358.el6.x86_64 内核引导选项:hugepagesz =1

    0热度

    1回答

    我有一个USART类,使用tx中断传输数据。 现在我想创建一个使用DMA传输数据的变体。 你更喜欢什么: 使用继承来创建两个USART子类,例如: ISRUSART和DMAUSART? 或 只实现代码变体检查。让用户在构造函数中指定是否应该启用dma,然后在代码中执行检查以决定要做什么(启用中断或加载dma)?

    4热度

    1回答

    我有通过中断读取USCI(UART)的工作“ok”的代码,但TI SimpliciTI堆栈是一个CPU猪,并在维修收音机时丢弃UART字节。 我假设DMA是要走的路,但我找不到使用USCI作为输入的完整DMA示例。

    3热度

    1回答

    我试图直接从Linux中的另一个PCIe设备访问NIC中的DMA地址。具体来说,我试图从NVIDIA GPU读取这些数据,以便一起绕过CPU。我已经研究了零拷贝网络和DMA到用户空间的帖子,但他们要么没有回答这个问题,要么涉及到从内核空间到用户空间的一些副本。我试图避免使用任何CPU时钟,因为与延迟不一致,并且我对延迟要求非常严格。 我拿到了我使用的intel卡(e1000e驱动程序)的NIC驱动

    4热度

    1回答

    使用带有dsPIC33FJ128GP802微控制器的MPLAB X 1.70。 我有一个应用程序从两个传感器以不同的采样率(一个在50Hz,另一个在1000Hz)采集数据,两个传感器数据包的大小也不同(一个是5个字节,另一个是21个字节)。到目前为止我用手动UART transmision所见如下: void UART_send(char *txbuf, char size) { //

    0热度

    1回答

    我正在写一个PCI设备驱动程序,我需要分配一些内存DMA, 我使用这个功能: void *dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, int flag); 我通过dma_handle到设备。 这个函数的返回值是一个虚拟地址,我可以在内核中使用的事情是,我不希望保存此地址为每个内存分配即时