首页 文章
  • 2 votes
     answers
     views

    STM32F303:带DMA的ADC只能工作几次

    我目前正在使用具有STM32F303RE芯片的Nucleo-64电路板 . 对于编程,我使用带有STM32软件包的Arduino IDE . 我现在想避免使用HAL,因为我认为当你必须同时学习寄存器和库函数时,它会相当混乱 . 我希望能够以5.1 Msps(F303的最大值)并行采样4个输入信号 . 我的计划是保持ADC运行 . 然后,当我想取样时,我重置DMA标志并将计数器(CNDTR-Regi...
  • 1 votes
     answers
     views

    DMA缓冲区大小是否应与UART FIFO大小相同?

    我在Linux平台上运行的omap4460熊猫板上为UART编写了驱动程序 . 我在UART中启用了FIFO模式的DMA . 我的用户应用程序将100字节的数据从用户空间传输到内核缓冲区(DMA缓冲区) . 一旦DMA通道被使能,来自DMA缓冲区的数据就被复制到FIFO,然后传输到UART的TSR . 由于我的FIFO大小为64字节,因此只有64字节被传输到TSR . 如何将剩余字节从DMA缓冲区...
  • 2 votes
     answers
     views

    **带有DMA的STM32f427 UART **从控制台接收数据时,最高位有时为1

    使用STM32f427 UART和DMA(使用stm cube HAL库)时遇到问题 . 我想制作一个控制台回显函数,所以我在uart空闲中断处理函数中立即回复接收到的数据 . 但有时,当我在键盘输入任何键时,接收数据的最高位将为1 . 如下 0x31 -> 0xB1 0x32 -> 0xB2 0x40 -> 0xC0 有人有任何想法吗?代码段如下 . 非常感谢你 . My u...
  • 0 votes
     answers
     views

    Windows中的内核模式驱动程序开发

    我正在开发一个新的内核模式驱动程序,它应该在Windows 10(64位)上运行 . 此驱动程序应分配48GB的 continuous physical 内存,并将其(其基址)映射到将使用它的Windows应用程序的用户空间中的虚拟地址 . 系统实际上安装了64GB的RAM,因此可能需要通过更改引导条目信息来创建专用于此用途的一段内存 . 此外,驱动程序应以某种方式向位于PCIe插槽上的基于FPG...
  • 1 votes
     answers
     views

    暂停后,stm32f4 DMA并不总是启动

    所以这个问题有点像这个问题:Stm32f4: DMA + ADC Transfer pausing . 我再次尝试实现这样的算法: 在一个通道上以三重交错模式使用ADC初始化DMA 等待外部中断 暂停DMA传输和ADC 在中断中通过USART从存储器发送缓冲数据 恢复DMA和ADC 退出中断,转到2 . DMA和ADC暂停并恢复,但有时(在大约16%的中断调用中)恢复失...
  • 0 votes
     answers
     views

    STM32 HAL DMA中断不会触发

    我正在做一个STM32 HAL课程 . 在"Direct Memory Access (DMA)"部分,在DMA传输完成时不会触发中断 . 在轮询模式下,一切正常 . 我使用Nucleo-F746ZG,我的代码在github上:https://github.com/bkht/STM32-HAL-DMA-Interrupt 我可以检查什么来解决这个问题? 设置回调函数时,是否需要...
  • 0 votes
     answers
     views

    STM32L4 SPI使用DMA传输完成中断仅触发一次

    我正在尝试使用SPI和DMA在2个核板(NUCLEO-L432KCU)之间发送10个字节的数组 . 我的目标是使用低级API为从板开发代码 . 主板仅用于测试,当一切正常时,它将被真实系统取代 . 在继续之前,以下是有关系统的更多详细信息:发件人配置为主服务器 . master的代码是使用HAL API开发的 . 主板上的芯片选择使用GPIO实现 . 接收器配置为从站,启用选项 Receive ...
  • 0 votes
     answers
     views

    STM32F0 DMA“输入溢出”

    我有一个问题,STM32F0 DMA从UART接收数据 . 我在非循环模式下使用2个DMA通道(对于rx和tx),rx通道的优先级较低 . 来自UART的数据处理空闲线路中断,其中我读取DMA接收字节的数量并处理它们 . 一切正常,直到包中的字节数小于或等于DMA缓冲区大小 . 否则DMA奇怪地关闭,并且在空闲线路中断后给出1,0,0,......数量的DMA接收字节 . 这是代码的一部分,我检查...
  • 1 votes
     answers
     views

    STM32f103上的USART DMA

    我正在通过DMA实现接收UART . 我把收到的7字节UART数据写入uint8数组[7] . 我的代码是: HAL_UART_Receive_DMA(&huart1, recv, 7); 一开始似乎都没问题,但几百次后,存储在recv数组中的数据被移动了一次,这个问题在前几百次接收时间后不断发生 . 我使用循环和递增地址存储器模式配置DMA . 我该如何解决?
  • 0 votes
     answers
     views

    在STM32F7上,由APB1定时器触发的DMA失败

    我有带STM32F723IEK MCU的STM32F7 Disco板 . 尝试从定时器触发DMA请求会导致DMA错误,但仅适用于连接到DMA1的APB1组(TIM2到TIM7和其他)的定时器 . 对连接到DMA2的TIM1和TIM8执行相同操作也可以正常工作 . 错误表现为在相应的DMA LISR或HISR寄存器中设置TEIFx标志,并在第一次事务后立即禁用DMA . NDTR寄存器递减1 . ...
  • 3 votes
     answers
     views

    如何使用GPU-CUDA代码中的GPU-DMA复制数据?

    使用CUDA SDK 5.5,我可以用来复制数据: 来自主机:cudaMemcpy();如果内存固定则使用GPU-DMA 来自主机: memcpy(); 或cudaMemcpy();如果内存未固定则使用CPU内核 来自gpu: for() { dst[i] = src[i]; } 或 memcpy(); 来使用GPU核心 来自gpu:使用GPU-DMA ??? 如何在 kern...
  • 1 votes
     answers
     views

    在x86中中断处理页面错误到服务设备内存副本

    我正在尝试在x86 CPU上计算出中断的控制流,特别是页面错误 . 到目前为止,这是我能想到的: IDT填充了服务例程地址 . 发生中断 . CPU将EFLAGS,CS和EIP保存到堆栈 . EIP设置为从IDT获取的ISR地址,即 mov eip, [idtr+interruptNum*4] 中断例程执行 . 中断例程以 iret 指令完成 . 现在,假设中断实际上是...
  • 1 votes
     answers
     views

    屏蔽DMA分配内存的物理地址是否有效?

    我目前正在编写一个Linux内核驱动程序,它需要告诉FPGA一个RAM中的基地址来写入 .使用 dma_alloc_coherent 在内核驱动程序中分配内存 . 这将生成32位物理地址和内核虚拟地址,物理地址将传递给FPGA .FPGA是一个带有嵌入式ARM Cortex-A9的Cyclone V,带有驱动程序的嵌入式Linux正在运行 .现在的问题是,FPGA架构仅产生27位宽的总线来寻址sd...

热门问题