
介绍# g# P* m/ y3 ]# S" ~/ S6 K 本应用说明相对于嵌入在STM32U5系列微控制器(也称为STM32U5设备)中的通用DMA(GPDMA)。GPDMA是一个系统外围设备,并且是AHB总线上的一个双端口主服务器。它用于通过链表在外设和/或内存之间传输数据。所有的GPDMA可编程传输在系统级别上提供了更高的性能,并卸载执行这些数据传输任务的CPU。 本文档的目的不是重写参考手册中的GPDMA专用部分,而是为系统开发人员提供一些面向性能的编程指南。 本文档基于GPDMA和可由GPDMA辅助的外围设备的组合功能。为了优化系统性能和匹配应用程序需求,它关注于要考虑的任何关键点。. e$ Q2 g; g! {( f& U+ T# L9 w 本申请说明包含以下理由和建议:( _9 ^0 N* h" J8 B& v; g GPDMA通道分配 Subarg GPDMA端口分配9 l. i4 p; i0 o8 m) A" E2 I$ r3 |# i -用于从内存映射的源位置进行传输 -用于传输到内存映射的目标位置1 Z/ f, }, V5 ?. w: k GPDMA传输优先级分配5 o, l. T- r* i GPDMA源/目标突发编程,根据数据宽度和突发长度% T6 C, t% b- P* W/ Q) x+ r 1 将军 消息 本应用说明适用于STM32U5系列微控制器Arm® Cortex®基于核心的设备。% B/ t$ [3 T4 y Arm是Arm有限公司(或其附属公司)在美国和/或其他地方的注册商标。/ Z) r9 W/ D7 T, E* k 参考文件3 D* q5 C8 C! F 参考手册STM32U575/585基于Arm®的32位mcu(RM0456)+ T1 k7 [ v! H3 N: [ • STM32U585xx datasheet (DS13086)+ ^& ]( I* J7 K ] • STM32U575xx datasheet (DS13737): i( g: i0 C. A& U. j 8 W+ U# M: e6 ]: P8 N7 e& z1 _ 2 GPDMA 将军 指导方针 P7 V- A8 R b+ \0 s; a& {3 \2 m 2.1 GPDMA概述5 D: P- F6 d! l1 j1 y+ e6 I, E GPDMA控制器用于在一个卸载的CPU的控制下,通过链表在存储器映射的外设和/或存储器之间执行可编程的数据传输。, U* W' v, a3 K1 J& c GPDMA是一个双AHB主服务器和系统外设。大多数外设和内存都连接到它,当需要数据传输时,提供了很大的灵活性和提高系统性能。链表是内存中的一个编程数据结构,用于准备每个GPDMA通道进行链接和调度DMA数据传输。GPDMA有16个频道。5 A. F4 S: m [& P5 c 2.2 GPDMA通道分配6 C! `5 D9 ?. q0 z' x) _4 }) G1 A 用户必须为一个GPDMA传输分配一个通道。GPDMA对给定的GPDMA信道实现了一个专用的FIFO,以便能够并发地处理来自源的GPDMA传输(读访问)和到目的地的GPDMA传输(写访问)。* L1 O0 k J1 r5 ]) D3 O FIFO单元格的单位是一个字节。FIFO大小决定了信道可以有效执行的最大DMA突发大小(突发长度x数据宽度)。一般突发越大,整个系统整体性能越好:吞吐量/带宽传输越高,系统总线占用率越低。 鉴于系统总线是32位字宽,建议编程一个32位的DMA源/目标数据宽度(GPDMA_CxTR1中的S/DDW_LOG2[1:0]),以最小化总线利用率。0 Z9 d }0 n# C. u6 _( H6 m- O 如下表所示,有两种信道类型,具有不同的FIFO大小和寻址模式:. e" c) S: U8 k) U5 t 通道0至11:: v' V2 t `0 u: i3 h; z -FIFO的大小为8个字节(2个单词)。* N# g! g$ E8 ~7 v7 K -寻址被限制为线性模式:或固定寻址(通常用于外围寄存器访问),或使用连续数据递增(通常用于内存访问)。$ T; J$ I5 f* k3 z 通道12至15:+ |0 u' P3 u! H7 h% ]! m -FIFO大小为32字节(8个单词)。 -寻址模式不仅是线性的,而且具有二维功能:对于源和目标,可以编程两个地址跳转/偏移:, @/ Y2 u" U7 L+ m ◦在每次编程的脉冲爆发后 ◦在每个编程块后 9 G# u2 Z& T' X1 T/ P Q 7 q$ a+ C0 x) J0 o v; E1 N ![]() 7 M2 g/ Z' i6 g5 C1 d+ | 建议采用以下通道分配方法:' z# k* }4 O3 K L% H 为AHB/APB外围设备分配到SRAM传输(两种方式),除非内存需要2D寻址,或者除非AHB外围设备支持突发请求' i/ p$ t2 K# U4 @$ V! x: J* Q 编程突发,然后建议为一个字(FIFO大小的一半),除非应用程序需要处理8或16位数据宽度。 分配给内存到内存的传输的通道12到15默认情况下,建议通过编程4个单词(FIFO大小的一半)来实现性能。这些通道12至15也优先用于: -从支持突发请求的AHB外设传输,如八点、HASH和ADC1。从/到外围设备的一半传输通常被编程为一个突发。. c: K7 r- @& x; t" z U8 c+ V. z 然后建议从/到内存的(一半)转换为4个字的突发。 -从/传输到一些具有更高带宽要求的AHB外设。然后还建议从内存的(一半)传输编程为4字的突发。 完整版请查看:附件" p5 ^' T! m8 s" ` 出处:社区用户:lugl发布 |
如何使用STM32U5系列微控制器的GPDMA.pdf
下载1.12 MB, 下载次数: 114
STM32U5低功耗测试
STM32怎么选型
内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略
STM32U5 系列使用 LPBAM 进行功耗优化
【STM32U545】实现CAN数据收发
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信
STM32U5 x E-BIKE,记录你的骑行多巴胺
基于STM32U5系列TIMER+DMA+DAC应用经验分享
实战经验 | 基于 STM32U5 片内温度传感器正确测算温度