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

【经验分享】STM32H7内存分布的学习

[复制链接]
STMCU小助手 发布时间:2021-12-27 18:00
在使用之前我们要先学**H7的内存分布,之前可能接触过ST的程序员没有发现有内存分布的特性,这可能是在M7系列新加的特性。: l. D- D$ J2 _: |2 x& \. |4 O
0 H8 O& N% N$ W$ x& R7 d
TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于指令,DTCM 用于数据,特点是跟内
  U" q1 G/ p& z( x" }核速度一样,而片上 RAM 的速度基本都达不到这个速度。
1 H0 i1 g) |6 ^) E2 q& I  i0 P
; Q9 h9 |6 w$ q4 J! _ITCM 和 DTCM
1 a: v- M& S* Y) Z这两个是直连 CPU 的。
# }6 i, |5 X  @. b7 ?* n
  [# k, B  D; ^6 H& wTCM 区$ {4 [9 P& c  H5 {+ g
TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于运行指令,也就是程序代码,DTCM
  c: [( e" u2 b1 X+ J# A用于数据存取,特点是跟内核速度一样,而片上 RAM 的速度基本都达不到这个速度,所以有降频处7 i7 P1 ^; P7 l0 h( m
理。
4 i6 [4 v7 E) _( ~# L, m: S3 a# D速度:400MHz。& p7 R( t9 ?# C$ t
DTCM 地址:0x2000 0000,大小 128KB。
) r; q& y) W% k9 WITCM 地址:0x0000 0000,大小 64KB。
; F' A8 w- y' S0 d% |/ {: n- K9 }' Y  j. U0 H* `3 U* f5 G
AXI SRAM 区9 c/ Q' g( @0 V# w9 V- G
位于 D1 域,数据带宽是 64bit,挂在 AXI 总线上。除了 D3 域中的 BDMB 主控不能访问,其它都可6 c7 d3 O* s' q, e1 [. q' k
以访问此 RAM 区。
) @7 @0 |" ~# M- \$ D  N1 {速度:200MHz。
0 x- K, |  J  r/ B# {' x* t地址:0x2400 0000,大小 512KB。
- K0 u- L+ Q6 t% v6 o% g4 W$ m* I/ D用途:用途不限,可以用于用户应用数据存储或者 LCD 显存。
1 m: y/ E, i/ I; c* T' w2 q
% u5 i* F( L* [2 f  d, ]SRAM1,SRAM2 和 SRAM3 区* \1 l" I5 S; {
SRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当
& v: c2 J/ w6 }D1 域断电后用于运行程序代码。
/ }# i: I7 k; Q7 |- b/ ESRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于
8 v# |' r  N& p用户数据存取。
: K  N% P' j: E0 S$ ^SRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。/ {5 b( I7 U- ^0 V4 y' Y3 \/ f6 e
/ Z0 I- A6 ~" P' [; S5 v
SRAM4 区
% o4 F  n" w! w. j6 B) b; y位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访这块 SRAM 区。
4 W( `3 D$ S& W' L速度:200MHz。
; Q3 v4 M" c/ N7 J! W, P2 i地址:0x3800 0000,大小 64KB。
' Q# @  Q2 f' U5 z用途:用途不限,可以用于 D3 域中的 DMA 缓冲,也可以当 D1 和 D2 域进入 DStandby 待机方式
8 E/ b& U4 k1 C( H: T后,继续保存用户数据。
, n- R7 C# c) U  a1 Y% w' K, y/ I9 |3 U  z: ^% ?, ]" h# z& z2 d- [# a
Backup SRAM 区4 I% ?2 |  c: J) Y3 K6 E0 @
备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM. F' S2 \; E: z
区。, {7 ?$ D, k9 D6 N  s5 E
速度:200MHz。
. e4 z/ d0 T* S& e. z$ p4 `: A2 r1 P地址:0x3880 0000,大小 4KB。8 f/ W3 `% O7 \# I3 b" G
用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat 引脚外接电池)。4 U. m& {1 M' z( z# u

+ K, E5 S. C" q1 b各块 RAM 的 DMA 问题
3 j& c1 S9 Y! r% |* T1 D' @) L# o: Y; B之前写了一个空闲中断+DMA的例子,在F4的板子稳定运行,可是在H7上跑不通,所以才注意到了内存分布对DMA的影响. C1 q. Q5 S5 S2 y" M1 B% B% m0 a( P
: q. o5 z2 W1 h- [6 K
DTCM 和 ITCM 不支持 DMA1,DMA2 和 BDMA,仅支持 MDMA。
$ K8 K5 d+ _7 rAXI SRAM,SRAM1,SRAM2,SRAM3 不支持 BDMA,支持 MDMA,DMA1 和 DMA2。9 i7 r& `/ T% @
SRAM4 支持所有 DMA,即 MDMA,DMA1,DMA2 和 BDMA。
4 O: R' o1 [# C* l3 d& j0 Q$ P; C& R( ?" Z: b( |! E1 N
鉴于 DTCM 是 400MHz 的,而其它的 RAM 都是 200MHz,推荐工程的主 RAM 空间采用 TCM,而
9 Q! d6 O+ q6 R& h0 H其它需要大 RAM 或者 DMA 的场合,使用剩余 RAM 空间。
3 n! D) j" c% R! {/ q8 A: C! O本教程配套的例子基本都是采用的这个方案,让 TCM 的性能得到最大发挥。6 n. F& s& m% Y. ^) u' `
2 z8 ~2 u; e; i( Q/ b( T$ q0 X1 y

" N1 p2 {3 l. `2 f
收藏 评论0 发布时间:2021-12-27 18:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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