你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何使用STM32U5系列微控制器的GPDMA

[复制链接]
STMCU小助手 发布时间:2023-1-9 15:00
介绍
& r% G5 w, B8 H( j0 L本应用说明相对于嵌入在STM32U5系列微控制器(也称为STM32U5设备)中的通用DMA(GPDMA)。GPDMA是一个系统外围设备,并且是AHB总线上的一个双端口主服务器。它用于通过链表在外设和/或内存之间传输数据。所有的GPDMA可编程传输在系统级别上提供了更高的性能,并卸载执行这些数据传输任务的CPU。5 I: M: p: g* p( N) }6 t( i1 Y
本文档的目的不是重写参考手册中的GPDMA专用部分,而是为系统开发人员提供一些面向性能的编程指南。
: h1 p( Q- i& A1 c+ e; c& w+ A! r本文档基于GPDMA和可由GPDMA辅助的外围设备的组合功能。为了优化系统性能和匹配应用程序需求,它关注于要考虑的任何关键点。8 G9 b- p' S+ K+ x7 r! L5 V6 A& G; r
本申请说明包含以下理由和建议:% ~3 M4 S% J+ S7 f8 i! q$ Y
GPDMA通道分配  a  ~8 ?& o' A" g1 |  o+ [& }
Subarg GPDMA端口分配
: f, ~* H5 E2 I0 X, N, c   -用于从内存映射的源位置进行传输4 Y% O7 }* I* D8 Y* F; i
   -用于传输到内存映射的目标位置
* r& I" \) D; ^' g4 p4 ^% k5 `GPDMA传输优先级分配
" k- g6 P, y$ d" OGPDMA源/目标突发编程,根据数据宽度和突发长度
; ~9 t7 C" K! \* q1 \0 o/ S# M1 将军 消息8 m5 \4 h( e$ ?& \2 I/ `
本应用说明适用于STM32U5系列微控制器Arm® Cortex®基于核心的设备。
6 e5 E" g4 R# u) l* YArm是Arm有限公司(或其附属公司)在美国和/或其他地方的注册商标。2 N5 C4 x: l' ~3 N
参考文件3 X1 c6 d$ l4 I, p" f4 u( [
参考手册STM32U575/585基于Arm®的32位mcu(RM0456)1 t) A/ Q& M. O6 U0 n% ^6 b
• STM32U585xx datasheet (DS13086)4 T3 U. @' a0 z# P) {& T
• STM32U575xx datasheet (DS13737)
; Y  d  M0 @' D/ v& l8 x/ I
7 S6 X% f! T3 C" e2 GPDMA 将军 指导方针8 Y- f3 T9 j: V  o$ z3 @
2.1 GPDMA概述
$ o, x2 E1 }2 Q; fGPDMA控制器用于在一个卸载的CPU的控制下,通过链表在存储器映射的外设和/或存储器之间执行可编程的数据传输。
; C: ]) ~' P0 \/ B' NGPDMA是一个双AHB主服务器和系统外设。大多数外设和内存都连接到它,当需要数据传输时,提供了很大的灵活性和提高系统性能。链表是内存中的一个编程数据结构,用于准备每个GPDMA通道进行链接和调度DMA数据传输。GPDMA有16个频道。
: f' y# {" Y, d2 O- g
( S0 r8 R% a: }% ^
2.2 GPDMA通道分配
6 L- R7 {$ u1 ^$ c0 x/ N用户必须为一个GPDMA传输分配一个通道。GPDMA对给定的GPDMA信道实现了一个专用的FIFO,以便能够并发地处理来自源的GPDMA传输(读访问)和到目的地的GPDMA传输(写访问)。: N1 r. o  n0 H* D! }
FIFO单元格的单位是一个字节。FIFO大小决定了信道可以有效执行的最大DMA突发大小(突发长度x数据宽度)。一般突发越大,整个系统整体性能越好:吞吐量/带宽传输越高,系统总线占用率越低。3 l3 X7 a+ ~3 d% J5 p* L9 f4 T3 m0 t
鉴于系统总线是32位字宽,建议编程一个32位的DMA源/目标数据宽度(GPDMA_CxTR1中的S/DDW_LOG2[1:0]),以最小化总线利用率。
; Y2 k2 Y9 V( i" e2 A% @! h如下表所示,有两种信道类型,具有不同的FIFO大小和寻址模式:
% n' r1 m8 Y  g: |通道0至11:
! X" h9 f! w5 m" k. b2 c; e     -FIFO的大小为8个字节(2个单词)。0 S+ q& V: [* X* |7 C* ]( Q7 B. f7 B
     -寻址被限制为线性模式:或固定寻址(通常用于外围寄存器访问),或使用连续数据递增(通常用于内存访问)。
: J5 P. G9 r7 ]' \, ~. d6 M通道12至15:
* p, s) Y2 B2 R5 M! k: `9 E       -FIFO大小为32字节(8个单词)。0 a! }4 U( I6 Z  W) @0 t1 E4 I
       -寻址模式不仅是线性的,而且具有二维功能:对于源和目标,可以编程两个地址跳转/偏移:
* Q$ G* Y1 ~, L# ^+ N4 Q◦在每次编程的脉冲爆发后
2 K/ T9 ]5 U: e. r! H◦在每个编程块后
- Y8 Z7 q5 _& [  |
" U! ?! K# x: w$ x, l8 j1 f" r

; ^* G2 d8 w8 y4 W2 A 7SS959U]H`2I5@XMZKTXS6A.png ! p% M. |% [5 R
3 S4 S) a! D7 d8 ?$ ?' U% D
建议采用以下通道分配方法:
* ?! Q* s& r8 W$ k2 S7 ]% r为AHB/APB外围设备分配到SRAM传输(两种方式),除非内存需要2D寻址,或者除非AHB外围设备支持突发请求
  S* K  }- @# \) v编程突发,然后建议为一个字(FIFO大小的一半),除非应用程序需要处理8或16位数据宽度。
; V" X7 H/ i/ J) H" ]+ f; q8 n分配给内存到内存的传输的通道12到15默认情况下,建议通过编程4个单词(FIFO大小的一半)来实现性能。这些通道12至15也优先用于:( s  G! q1 I4 _
-从支持突发请求的AHB外设传输,如八点、HASH和ADC1。从/到外围设备的一半传输通常被编程为一个突发。
% [% {# A3 P- ~* x1 j( n然后建议从/到内存的(一半)转换为4个字的突发。  b6 r1 I  Y( h' A3 I& O( d
-从/传输到一些具有更高带宽要求的AHB外设。然后还建议从内存的(一半)传输编程为4字的突发。
. e1 S: x  _" V5 [# B* X4 `2 j7 T5 H; y: z
+ O; c* j8 Z& `) d0 D/ x' A7 k  ~
完整版请查看:附件5 A5 ^  r% `" p9 `$ _  j

( W5 @; B+ S+ p- F7 w
出处:社区用户:lugl发布4 W4 f1 r0 y1 Q1 j+ O  P

如何使用STM32U5系列微控制器的GPDMA.pdf

下载

1.12 MB, 下载次数: 108

收藏 评论0 发布时间:2023-1-9 15:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版