请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
STMCU小助手 发布时间:2021-12-27 18:00
在使用之前我们要先学**H7的内存分布,之前可能接触过ST的程序员没有发现有内存分布的特性,这可能是在M7系列新加的特性。
' S" c: l, L5 p4 n9 y
) _; k* t; j& V/ j5 t6 |. N" a1 mTCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于指令,DTCM 用于数据,特点是跟内
2 C+ m) g- C( {4 ?7 M核速度一样,而片上 RAM 的速度基本都达不到这个速度。1 q4 ]; t" Q3 u

% y: N9 ?, j% W2 PITCM 和 DTCM
+ q. c1 J) J; W2 j$ Z! F) R, I这两个是直连 CPU 的。  ?0 B, `- ~" }! I$ g  e

5 _! G4 g4 C* S/ W4 KTCM 区
: t( `& F( N. X3 nTCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于运行指令,也就是程序代码,DTCM3 ~  ~+ m3 l$ E" w6 r3 Y
用于数据存取,特点是跟内核速度一样,而片上 RAM 的速度基本都达不到这个速度,所以有降频处
1 z9 S  W+ m) p8 n9 C理。
! F3 i, |, x; p" x速度:400MHz。
* \: C  }3 m( o/ S" W& P7 iDTCM 地址:0x2000 0000,大小 128KB。
3 t/ j) N4 [( qITCM 地址:0x0000 0000,大小 64KB。9 u- m  ?" K* U
5 _$ B% e6 Q* l' k' E$ W6 A/ P
AXI SRAM 区
+ z( d: h  z6 k% _5 o: K位于 D1 域,数据带宽是 64bit,挂在 AXI 总线上。除了 D3 域中的 BDMB 主控不能访问,其它都可
# s% h6 g5 |+ C) Q5 @6 q/ J! f以访问此 RAM 区。, @1 i+ e! p1 z( _" p
速度:200MHz。, F$ y  d: a$ T( S0 r7 y
地址:0x2400 0000,大小 512KB。# I) _" D7 f! U. C2 w
用途:用途不限,可以用于用户应用数据存储或者 LCD 显存。
6 u, h0 k0 \6 U8 S6 c" `4 C( F. x+ I3 g  o: V
SRAM1,SRAM2 和 SRAM3 区
' B+ j) V1 g; j% T1 L0 lSRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当
8 Z8 D$ s9 c# n$ ?4 gD1 域断电后用于运行程序代码。
1 h  j8 z" [9 h& W5 hSRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于
6 L; g3 U2 h6 W, |' i4 G用户数据存取。
: o! q& O# L( S/ R% n' w3 USRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。
. l: i& b4 h5 N2 S2 R4 s2 v1 B& I  ~% k- c9 l
SRAM4 区. ~4 b9 _6 Z9 t
位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访这块 SRAM 区。
  v8 M6 r5 H: ^+ R! v" p速度:200MHz。
9 i) n4 z# p$ g$ N( N9 a地址:0x3800 0000,大小 64KB。
0 [9 ]! S$ M0 }4 S$ V3 \# z! Z4 |: t8 M用途:用途不限,可以用于 D3 域中的 DMA 缓冲,也可以当 D1 和 D2 域进入 DStandby 待机方式/ J" g- a+ {( M# n+ N
后,继续保存用户数据。2 P8 q: B( X8 ~& g+ l

7 _0 v6 z, F  y8 `1 U+ ?% ]& RBackup SRAM 区0 b( d) W* \$ I# h! N8 F2 W
备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM
- \- X9 }$ A7 Q, U5 `; n) [  ^区。
7 n0 p6 r2 ?3 f速度:200MHz。
: F( l& x' N' s8 z* x0 N- ~地址:0x3880 0000,大小 4KB。1 K# X: x. H+ o$ A) v
用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat 引脚外接电池)。" H, M# Q, ^" g5 M, G) t. H  [7 T

& \+ c, h" N+ p% v& f# ~5 P各块 RAM 的 DMA 问题
: R0 h2 S) \/ ?9 X, `- I! _6 v" R- ~之前写了一个空闲中断+DMA的例子,在F4的板子稳定运行,可是在H7上跑不通,所以才注意到了内存分布对DMA的影响
$ u+ a: |/ s. S! g5 z# B: q
# b  v: J, c' pDTCM 和 ITCM 不支持 DMA1,DMA2 和 BDMA,仅支持 MDMA。
* G; n$ [1 M2 v) a& c' J* yAXI SRAM,SRAM1,SRAM2,SRAM3 不支持 BDMA,支持 MDMA,DMA1 和 DMA2。
$ H8 b# f% u: s/ Z+ {SRAM4 支持所有 DMA,即 MDMA,DMA1,DMA2 和 BDMA。0 Z5 Q3 M4 j+ j3 \# B& @8 l1 z

- k, t! m% D1 Q& J6 J鉴于 DTCM 是 400MHz 的,而其它的 RAM 都是 200MHz,推荐工程的主 RAM 空间采用 TCM,而! Q, e# j6 X4 M3 a2 o8 F
其它需要大 RAM 或者 DMA 的场合,使用剩余 RAM 空间。! o- e( V5 r8 m  S9 T, J
本教程配套的例子基本都是采用的这个方案,让 TCM 的性能得到最大发挥。2 a1 x; S' W7 B9 g+ n5 a* ~! Q( b" q
8 F; H' J2 C3 E  K

' q; c# _  o$ S
收藏 评论0 发布时间:2021-12-27 18:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版