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

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

[复制链接]
STMCU小助手 发布时间:2021-12-27 18:00
在使用之前我们要先学**H7的内存分布,之前可能接触过ST的程序员没有发现有内存分布的特性,这可能是在M7系列新加的特性。- Y9 f+ T, W  ^" H4 i" u0 z

4 O5 ~2 J0 ~" S9 @8 X8 _& ~0 E' TTCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于指令,DTCM 用于数据,特点是跟内7 S1 \: g$ s! u& w; l
核速度一样,而片上 RAM 的速度基本都达不到这个速度。
1 L7 O8 O1 n) i% ]5 _# ?! ^7 r6 |+ ?& Y+ X# X0 c. w
ITCM 和 DTCM& W! o$ y, a3 S$ _2 y
这两个是直连 CPU 的。
/ r* |0 y, U$ A7 ^7 y8 S+ @. k8 i) o" [
TCM 区6 z' p4 c- k5 d9 B- K# z0 Z
TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于运行指令,也就是程序代码,DTCM' s8 x5 c( _0 Q. ]* {/ b# e
用于数据存取,特点是跟内核速度一样,而片上 RAM 的速度基本都达不到这个速度,所以有降频处* M7 v' `. ?1 @) S- e: U+ [0 ?+ {' L
理。( o. R4 B! _7 K0 U6 [" ?! z* F7 u% Z
速度:400MHz。
: v3 }8 _8 [7 |- [  s, b$ mDTCM 地址:0x2000 0000,大小 128KB。
  V1 d; W) w( R! N8 i! w# L( {ITCM 地址:0x0000 0000,大小 64KB。" o( g5 A+ t; l4 T2 \  k

5 w4 O9 [! Y- Z# s+ M" E/ |AXI SRAM 区
) e# C) A3 q6 E: _% N( E7 n# k& `位于 D1 域,数据带宽是 64bit,挂在 AXI 总线上。除了 D3 域中的 BDMB 主控不能访问,其它都可
: ?# L: V# k- Y2 e, q- k以访问此 RAM 区。
' A/ `. U9 y( J, J9 ^速度:200MHz。# q5 Z$ o  w3 j# S
地址:0x2400 0000,大小 512KB。* \5 w! b# @0 X1 y
用途:用途不限,可以用于用户应用数据存储或者 LCD 显存。* t/ y: N  V, N; C; A

- Y) X; g7 j& a. Q7 o5 W% G2 DSRAM1,SRAM2 和 SRAM3 区
, m; T, {) E, \! YSRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当1 A4 F8 x8 B' P3 S! W
D1 域断电后用于运行程序代码。
: R1 q" Q# D; Q6 ~SRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于
# _5 T' ]' P  `+ A  U+ Q用户数据存取。
0 {4 m0 p) _# \6 TSRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。" p8 }; |0 R/ W. N5 }5 z) ?% j, f

: _. |7 J" [4 i* v) M. U1 `. ^: {SRAM4 区+ M/ a! }) T5 p  M* g: u' j
位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访这块 SRAM 区。
  ~" |) h' }! D7 ^. m9 f速度:200MHz。$ ~* v7 X  T  g7 a' o
地址:0x3800 0000,大小 64KB。
0 q4 P, n' B5 R7 X5 ~. x7 k& C用途:用途不限,可以用于 D3 域中的 DMA 缓冲,也可以当 D1 和 D2 域进入 DStandby 待机方式: `0 R8 }0 ?, E7 j  B
后,继续保存用户数据。' \5 V# a, L) n# m8 @- t! j

6 L$ `: D3 U* L6 |8 Y  ~. Z" OBackup SRAM 区
' n. K7 I$ l/ H) ]/ @  t备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM
3 w: {' f7 x9 e* s( u区。/ A# |, K, }6 X9 x
速度:200MHz。9 o9 u" s' f) R$ f4 U
地址:0x3880 0000,大小 4KB。: Z2 n& D  }8 S' n# I: L& V$ z
用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat 引脚外接电池)。
% |( O2 M  s& W4 s+ S% l% N1 y" Z
各块 RAM 的 DMA 问题
/ y/ s+ P  c0 b4 l- b; D/ I; y之前写了一个空闲中断+DMA的例子,在F4的板子稳定运行,可是在H7上跑不通,所以才注意到了内存分布对DMA的影响
0 p5 p! ]+ n+ {3 l( k
0 T8 |, G2 J1 O6 u) t3 MDTCM 和 ITCM 不支持 DMA1,DMA2 和 BDMA,仅支持 MDMA。
3 B9 ]# s7 b) ]! b. N/ gAXI SRAM,SRAM1,SRAM2,SRAM3 不支持 BDMA,支持 MDMA,DMA1 和 DMA2。
; s) q' S  H& Z/ Z% ZSRAM4 支持所有 DMA,即 MDMA,DMA1,DMA2 和 BDMA。* [4 K- N, ]# h4 ]+ }" z) W7 A2 d, Z

2 t5 u7 B: r: b9 w2 `2 {鉴于 DTCM 是 400MHz 的,而其它的 RAM 都是 200MHz,推荐工程的主 RAM 空间采用 TCM,而8 F& |# v; |3 L9 f  E
其它需要大 RAM 或者 DMA 的场合,使用剩余 RAM 空间。
, i0 M) R2 ]" e/ B本教程配套的例子基本都是采用的这个方案,让 TCM 的性能得到最大发挥。1 e2 H' C) T+ C; `; D
# z4 f; _/ l5 V. Y) p

  O2 b5 m$ @6 ]$ b2 K
收藏 评论0 发布时间:2021-12-27 18:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版