直接存储器访问(DMA)是现代计算机和微处理器的一个特征,它允许计算机内的某些硬件子系统访问系统存储器,以便独立于中央处理单元进行读取和/或写入。
我遇到以下问题。当我为 5 个通道设置具有 DMA 的 ADC 时,我得到的读数低于预期。 我们在3个国家都有同批次的PCB,但只有...
我有一块STM32F411板,想使用定时器/PWM/DMA输出一个PWM信号:每2ms一次,发送16个脉冲,每个脉冲代表一位。每个脉冲的周期约为 3 微秒,变化...
我想使用DMA向UART发送数据。每 3 次传输我想生成另一个 DMA 请求(不使用内核)以将数据从定时器 CNT 寄存器传输到内存。
mmap() 比 write() copy_from_user() 慢,为什么?
我需要将大数据块(~6MB)从用户空间传输到我的驱动程序。在驱动程序中,我使用 pci_alloc_concient() 为每个块分配 2 个 3MB 块。然后我 mmap() 每个块(即 2 个块)t...
FROM_DEVICE DMA 请求在多 CPU 服务器主板上挂起 Linux
我正在开发基于 FPGA 的 PCI Express (PCIe) 设备,该设备应该在 Linux 操作系统下工作,所以我也在编写 Linux 内核驱动程序。该设备的特点之一是可以将数据写入Li...
T-Display-S3-long FreeRTOS 当有可用堆空间时内存分配失败
我正在尝试为 T-Display-S3-long 进行编程,我已经下载了 AXS15231B.cpp 库并测试了显示 3 个静态分配图像的基本程序。我的目标是拥有 RTO...
我想编写一个内核模块,可以通过 DMA 在 RAM 之间传输数据。有一些帖子讨论了这个问题,但我不太明白。有人说有可能,也有人说不可能。 如果我
我正在使用STM32L072KB微控制器并尝试熟悉定时器。我想使用定时器通过 DMA 切换 GPIO/LED。 我读过一本书“Mastering STM32”(https://leanpub.com/mastering-
我从互联网上找到了这段代码,用于 DMA 从内存传输到内存 这段代码工作正常 #包括 #包括 #包括 #包括...
我正在使用CubeIDE进行开发。我想以一致的采样率对模拟引脚进行采样,并且我希望采样率尽可能高。因此我将 PCLK2 配置为以 72 MHz 运行,
dma_set_mask_and_coherent(),具有适用于 arm64 上 PCIe 的 24 位 DMA 掩码
我正在编写 PCIe 驱动程序,但在设置 DMA 掩码时遇到问题。 主机是带有四核 ARM-Cortex A53 的 zcu102。 PCIe 设备是自定义设备。 内核是v5.15.0-1023-xilinx-zyn...
dma_set_mask_and_coherent 具有 24 位 DMA 掩码,适用于 ARM64 上的 PCIe
我正在编写 PCIe 驱动程序,但在设置 DMA 掩码时遇到问题。 主机是带有四核 ARM-Cortex A53 的 zcu102。 PCIe 设备是自定义设备。 内核是 5.15.0-1023-xilinx-zynqmp
是否可以在 STM32F3 上使用 DMA 通过 SPI 传输无限数据?
我正在开发一种基于新协议的 RF 调制解调器,该调制解调器具有在一帧中传输 96 字节的功能 - 但它们会在通信结束之前不断发送。我计划使用两个 96 字节缓冲区...
我想使用 DMA 在连续扫描模式下读取 4 个 ADC 通道(PA0、PA1、PA2 和 PA3),问题是一旦 uC 运行程序,它只执行一个 ADC 读取序列,然后得到“. ..
我已通过 Jtag、tftpboot 将 linux 引导到我的 ZYNQ 7000 (AVNET) 板上。接下来,使其从 QSPI 启动。 本项目的目的是通过DMA在PS和PL之间传输数据。我已经做到了...
STM32G030 / CRC_DR / 如何使用32位写入?
不知何故,当我使用 CRC_DR 的字访问时,我没有得到 0xD0FA 和 0x12345678 和 16 位 POLY 0x1021。 示例:伪代码: RCC.CRCEN=1; CRC_CR.POLYSIZE=0b01; CRC_POL=0x1021; CRC_INIT=0; CRC...
我无法使用 DMA (STM32F407ZGT6) 从 USART 获取数据
我使用标准外设库编写了一个驱动程序,从USART6_RX获取数据并将其通过DMA保存在STM32F407ZGT6芯片上的内存中。 USART 无需 DMA 即可工作,但使用 DMA 则不会发生任何情况。 ...
我想知道某个页面是否固定在物理内存中,即不可交换或不可迁移。 从这篇文章中,我知道 get_user_pages() 通常用于固定驱动程序中的用户空间内存以执行...
我的理解是,当NIC适配器接收到新数据包时,上半部分处理程序使用DMA将数据从RX缓冲区复制到主存储器。我认为这个处理程序不应该退出或释放...