dma

    1热度

    1回答

    我想知道当设备的DMA控制器正在进行内存操作时,CPU可以处理/执行什么样的操作,以提高并发性水平?而如果CPU的缓存/寄存器是空的,怎么另一个指令可以在不进行交织DMA获取 THX

    1热度

    1回答

    我遵循此框架https://forums.xilinx.com/xlnx/attachments/xlnx/ELINUX/10693/1/Linux%20DMA%20from%20User%20Space-public.pdf来执行使用DMA的数据传输。我使用AXI DMA而没有 scatter gather,发送流循环回到接收 流。我使用的代码如下:dma_proxy.c, dma_proxy.

    1热度

    1回答

    我在使用STM32F4 DMA时遇到问题。 我已经建立了我的DMA配置如下的循环模式: hdma_usart1_rx.Instance = DMA2_Stream2; hdma_usart1_rx.Init.Channel = DMA_CHANNEL_4; hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_usart1_rx

    1热度

    1回答

    我有一个在Ubuntu下工作的触摸屏面板,我需要找出这个设备在触摸面板时写入坐标的位置。 缓冲区? DMA寄存器? USB注册?我在哪里可以获得这些信息?如何获得这个信息unter Linux的CONSOL?如何获得物理内存位置/缓冲区地址?! ... 有人有想法吗?

    0热度

    1回答

    我正在构建基于配备arm64 CPU的UltraScale + FPGA的数据采集系统。 数据通过DMA传输到RAM。在驱动程序中的DMA缓冲区如下保留: virt_buf[i] = dma_zalloc_coherent(&pdev->dev, BUF_SIZE, &phys_buf[i],GFP_KERNEL); 在驾驶员MMAP功能,映射到用户空间通过以下方式完成: #ifdef ARC

    1热度

    1回答

    我正在尝试获取Linux内核模块内系统中所有可用RAM的物理地址范围。 我看到了cat/proc/iomem,并看到物理内存本身并不连续。 据我所知,对于32位系统的兼容性,PCI和其他外设存储器需要在4GB地址范围内。 也是用于DOS的640 kB初始值。 下面的输出是从x86_64系统 00000000-00000fff : reserved 00001000-0009d7ff : Syst

    1热度

    1回答

    这可能是一个愚蠢的问题,但我还没有得到关于DMA的知识。 当执行存储器到存储器DMAing,它需要分配DMA缓冲区 (例如用dma_alloc_coherent()),然后为每个我们需要将缓冲器复制到所分配的存储器(源缓冲器)中,然后触发DMA事务传送。 因此,如果每笔交易需要额外的memcpy(),那么使用DMA的好处是什么? 步骤用于复制源到目的地 - 无DMA:从源 复制缓冲区(memcpy

    0热度

    1回答

    我使用STM32F4Discovery开发板,从Cube生成代码,SYSCLK为168MHz,APB1定时器时钟为42 MHz,TIM6具有预分频器1000,并且计数至62。 启用由 __HAL_TIM_ENABLE_IT(&htim6, TIM_IT_UPDATE); HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); 开始DAC_DMA TIM6中断在正常模式下,用30

    0热度

    1回答

    我正在ARM上使用内核3.18。我正在从我正在写驱动程序的摄像头读取数据。 我用下面的设置内存: cpu_handle = dma_alloc_coherent(NULL, dma_size, &dma_handle, GFP_KERNEL | GFP_DMA); 这是工作得很好。在相机传送数据后,我使用相同的内核模块读出内存,并且可以看到照片。 现在我想启动一个用户空间应用程序来读取相同的数

    1热度

    2回答

    嘿,我试图解决这个学校练习.. 编写一个程序,不断读取字符串并连接它们(将它们添加到单个字符串)。串联应该在函数中发生,如果成功则返回1,否则返回0。内存分配只使用realloc! 我在调试程序时没有收到任何错误,但是当我尝试运行程序时,在插入字符串后,出现的唯一内容是“Segmentation Fault”,它会是什么?这是代码: #include<stdlib.h> #include<std