dma

    1热度

    1回答

    我使用aio在一个线程的不同磁盘上写入多个文件。当我使用缓冲写入时,IO处理是并发的。但CPU负载非常高。当我用DIRECT标志打开文件时,IO处理不是并发的。 如何使用DMA在一个线程中同时写入不同磁盘上的多个文件? #include <malloc.h> #include <stdio.h> #include <string.h> #include <iostream> #includ

    1热度

    1回答

    我正在使用STM32F103,试图使用DMA从一个阵列复制到另一个阵列。该传输第一次工作,并且DMA1_Channel1_IRQHandler中的一个断点被击中,但随后对DMA_Cmd(DMA1_Channel1, ENABLE)的调用不起作用且断点未被命中。错误标志DMA1_FLAG_TE1未设置。是否还有其他需要设置/重置的转移以便第二次运行? #include "stm32f10x.h"

    0热度

    1回答

    你好我开始编程一个STM32F769I_Eval。 我是编程Cortex M4和使用RTOS的绝对初学者。 我使用基本示例开始。 现在我想使用带有DMA的ADC来显示LCD上的当前值。 我在没有RTOS的简单例子中试过这个,它工作得很好。 但是现在我构建了一个新项目,但显示屏仍然黑屏。看来,使用HAL_ADC_START_DMA(...)后,它挂起。如果我注释掉这一行,则显示GUI。 #inclu

    0热度

    1回答

    我想实现stm32f303发现的ADC1,ADC2和两个DMA ADC通道的双常规同时模式。 在CubeMX例子: 两个DMA通道(一个用于ADC主,一个用于ADC从站)的用法是 也是可能的:这是在高 ADC转换速率和应用的情况下建议的配置使用其他DMA频道 集中。 根据AN4195 当使用DMA,有两种可能的情况:•使用两个 独立的DMA通道用于主站和从站的。每个ADC(在这种情况下, MDMA

    1热度

    1回答

    此问题的产生源于my other question。我决定创建一个新的,因为这是我无法在任何地方找到的一件非常特别的事情。 在STM32F415中,我希望定时器的输出比较默认为高电平,而我告诉他的时钟周期数量低。我的目标是禁用一个计时器使用另一个计时器。在Reference Manual第620页中,上有一个示例,使用一个定时器启用另一个定时器。 就我而言,我希望TIM3控制TIM2和TIM4来控

    0热度

    1回答

    我有STM32F7迪斯科板与STM32F723IEK MCU。试图从定时器触发DMA请求会导致DMA错误,但仅限于连接到DMA1的APB1组(TIM2到TIM7等)的定时器。与连接到DMA2的TIM1和TIM8一样,工作正常。该错误表现为在相应的DMA LISR或HISR寄存器中设置TEIFx标志,DMA在第一次事务后立即禁用。 NDTR寄存器减1。 根据数据表,TEIF错误可能由“总线错误”触发

    2热度

    1回答

    我正尝试使用DAC和DMA生成频率为8kHz的三角波。使用定时器触发DAC,以使DAC速度达到1 MSPS。我正在研究stm32L476发现板。我正在使用stm32CUBEMX进行代码初始化。我的配置如下: 在stm32CUBEMX: Clock configuration : system clock = 80MHz APB1 and APB2 peripheral c

    1热度

    1回答

    我想将一个非常大的内存块的内容传输到一个足够大的GPU缓冲区,然后立即改变CPU上内存的内容。事情是这样的伪代码: glBindBuffer(/*very_large_buffer*/); glBufferSubData(/*very_large_memory_chunk*/); memset(/*zeros*/, /*very_large_memory_chunk*/); 在这段代码,什

    1热度

    1回答

    我和朋友正试图为高级操作系统类编写虚拟设备的设备驱动程序(读取:不是PCI或USB)。我们正在使用Ubuntu 16.04。我们的任务是在我们的驱动程序中调用IOCTL并为它提供一个完整的RGB值(一个整数数组),一个空目标缓冲区和一个长度的源缓冲区。我们将调用DMA控制器将源缓冲区的内容传输到目标缓冲区,然后对目标缓冲区中的值应用线性转换。 我们已经成功地完成了没有DMA的转换,并且我们已经成功

    2热度

    2回答

    我有一个STM32F4,我想PWM一个已经或运算带着面具GPIO端口.. 所以,也许我们要在200kHz至PWM 0b00100010一段时间,但是接着,在10khz之后,我们现在想要PWM 0b00010001 ...然后,在10kHz之后,我们希望在相同的GPIO上PWM一些其他掩模。 我的问题是,你如何做到这一点与DMA?我试图触发一个DMA传输,将所有位设置在上升沿,然后再进行另一次DMA