加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 资料介绍
    • GPDMA 概述
    • GPDMA 通道分配
    • GPDMA 端口选择
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

AN5593 如何对 STM32U575/585 微控制器使用 GPDMA

3小时前
109
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

AN5593 如何对 STM32U575/585 微控制器使用 GPDMA

559.68 KB

本应用笔记与 STM32U575/585 微控制器MCU)中嵌入的通用 DMA(GPDMA)相关。GPDMA 是一种系统外设,是 AHB 总线上的双端口主设备。它被用于通过链表在外设和/或存储器之间传输数据。所有 GPDMA 可编程传输均在系统层面提供更高性能,并使 CPU 无需执行这些数据传输任务。

本文档的目的不是将现有的 GPDMA 专用章节重新编写到产品参考手册中,而是为系统开发人员提供一些以性能为导向的编程指南。

本文档以 GPDMA 和可能受到 GPDMA 协助的外设的组合功能为基础。本文档聚焦于为了优化系统性能和满足应用要求而需要考虑的所有关键点。

本应用笔记包含关于以下内容的原理阐述和建议:

  • GPDMA 通道分配
  • GPDMA 端口分配

–对于始于存储器映射源位置的传输

–对于止于存储器映射目标位置的传输

  • GPDMA 传输优先级分配
  • GPDMA 源/目标突发编程,包含数据宽度和突发长度

GPDMA 概述

在减载 CPU 的控制下,GPDMA 控制器通过链表执行存储器映射外设和/或存储器之间的可编程数据传输。

GPDMA 是双端口 AHB 主设备和系统外设。大多数外设和存储器都与之建立连接。在需要数据传输时,这一点提供了很大的灵活性并提高了系统性能。链表是存储器中程序化的数据结构,旨在让每个 GPDMA 通道为链接和安排DMA 数据传输做好准备。GPDMA 有 16 个通道。

GPDMA 通道分配

用户必须分配一个通道用于 GPDMA 传输。为了能够同时处理来自源的 GPDMA 传输(读访问)和到达目标的GPDMA 传输(写访问),GPDMA 对给定 GPDMA 通道使用专用 FIFO。

FIFO 单元的单位是一个字节。FIFO 的大小决定了通道能够有效处理的最大 DMA 突发大小(突发长度与数据宽度的乘积)。注意,通常突发越大,系统总体性能越好:更高吞吐率/带宽传输,更低系统总线占用率。

鉴于系统总线为 32 位字宽,建议将 DMA 源/目标数据宽度设定为 32 位(GPDMA_CxTR1 中的 S/DDW_LOG2[1:0]),以便最大限度减少总线使用量。

GPDMA 端口选择

用户必须为始于源(GPDMA_CxTR1 中的 SAP)的传输分配一个端口,并且为止于目标(GPDMA_CxTR1 中的DAP)的传输分配一个端口。在执行下一次数据传输之前,会通过下一个链表项和数据结构动态更新此分配。

资料预览

相关推荐