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

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

[复制链接]
STMCU小助手 发布时间:2021-12-27 18:00
在使用之前我们要先学**H7的内存分布,之前可能接触过ST的程序员没有发现有内存分布的特性,这可能是在M7系列新加的特性。( F1 k/ B5 h0 E& L) |) |! ?. R  _/ R
* ^9 {. ~. P8 B8 [
TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于指令,DTCM 用于数据,特点是跟内4 b7 p2 Z( t$ P# s2 l9 k# K
核速度一样,而片上 RAM 的速度基本都达不到这个速度。6 d. C. g% x' U+ g; E. u3 k

4 `* l+ U$ W9 ]0 X) ]$ cITCM 和 DTCM& z) B2 b) d  O7 }- g
这两个是直连 CPU 的。8 x& g: t2 m8 v8 x7 M6 ]9 F5 p4 j
# S, ~( v) l* W1 }$ t- t  ]- a+ s
TCM 区
% [7 d$ I- a+ V" Q3 T1 M% GTCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于运行指令,也就是程序代码,DTCM
, t: j5 s0 o0 W用于数据存取,特点是跟内核速度一样,而片上 RAM 的速度基本都达不到这个速度,所以有降频处
! u3 s9 I" q, g+ f) d: t理。
- o8 O; [7 S4 c速度:400MHz。
( C5 w! {5 x2 f  r0 CDTCM 地址:0x2000 0000,大小 128KB。
9 ~3 C% U6 G6 M2 K) a( q& VITCM 地址:0x0000 0000,大小 64KB。
! N, d  R( i4 z9 z2 r. y/ A" p% O- [! ~( r$ }. o9 d6 l. [
AXI SRAM 区
, f; q5 d- d) C' ^5 v位于 D1 域,数据带宽是 64bit,挂在 AXI 总线上。除了 D3 域中的 BDMB 主控不能访问,其它都可
+ y+ Y; t8 ^0 m4 F/ U+ i# ?8 W以访问此 RAM 区。. s8 O* m4 s& x7 F& H! A8 k
速度:200MHz。
" S+ e0 A, f9 E$ Q6 ?& V$ H1 Q地址:0x2400 0000,大小 512KB。
: l" B* K2 k% _2 c" o用途:用途不限,可以用于用户应用数据存储或者 LCD 显存。# E6 u5 K- D/ X$ B1 {0 b3 d

! \) O( [3 {8 w: X6 c8 DSRAM1,SRAM2 和 SRAM3 区8 A* A5 g! b( a& m
SRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当" ]& ~# X' Y" x( I
D1 域断电后用于运行程序代码。
- ^$ v8 _9 E6 E$ U* s+ iSRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于
5 r4 d3 Y: d& `用户数据存取。- G* c# N# _9 c; K0 h
SRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。8 c2 }- j/ _6 Q" b! H

  L5 A) F2 T/ G0 ^3 b0 ASRAM4 区5 v+ N- J$ h6 m% u+ c
位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访这块 SRAM 区。
. {) t1 M/ a; B: I2 K% ^. E速度:200MHz。+ c+ v1 b: ]$ p4 F: l
地址:0x3800 0000,大小 64KB。
' J$ s2 t0 g% B3 D0 n! v7 ^用途:用途不限,可以用于 D3 域中的 DMA 缓冲,也可以当 D1 和 D2 域进入 DStandby 待机方式  U) r7 I' i6 g3 r" U6 m* K
后,继续保存用户数据。& V" x  S3 {, H2 {

- m' ]& N' X- d* ^, IBackup SRAM 区' |, @& A6 J4 p' w+ g% \
备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM# U8 M1 s. e: ?0 j3 q
区。
  f4 I9 i  {6 r; H" K1 C% t速度:200MHz。) _+ T2 `. g/ B& E( d+ p! }6 K
地址:0x3880 0000,大小 4KB。- b# o) G3 l4 @6 w
用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat 引脚外接电池)。
- \. I+ y" x6 U/ s! Z/ m; P& Y; R+ f0 S
各块 RAM 的 DMA 问题9 X  }) I; q/ l& W- c. h3 w- N
之前写了一个空闲中断+DMA的例子,在F4的板子稳定运行,可是在H7上跑不通,所以才注意到了内存分布对DMA的影响
5 S* t, d6 k: C" q+ E: d) m& Z
2 B+ P4 h4 u/ o) X0 N. ]8 I3 qDTCM 和 ITCM 不支持 DMA1,DMA2 和 BDMA,仅支持 MDMA。4 j9 N7 C3 f8 C. q
AXI SRAM,SRAM1,SRAM2,SRAM3 不支持 BDMA,支持 MDMA,DMA1 和 DMA2。
  A7 i0 n9 Q$ pSRAM4 支持所有 DMA,即 MDMA,DMA1,DMA2 和 BDMA。
. B- R9 [& {0 s
# B& T3 U2 C3 v( ~% E; D) s3 q1 r鉴于 DTCM 是 400MHz 的,而其它的 RAM 都是 200MHz,推荐工程的主 RAM 空间采用 TCM,而+ ^6 q( J/ v+ P, y
其它需要大 RAM 或者 DMA 的场合,使用剩余 RAM 空间。+ o3 E/ _- q5 h* `- c. D( H
本教程配套的例子基本都是采用的这个方案,让 TCM 的性能得到最大发挥。
& U9 b0 e! S% u3 `- D6 s- x' i( z) c! a' @: p/ C! T( A

$ u3 ]" |# l& r1 ^$ S
收藏 评论0 发布时间:2021-12-27 18:00

举报

0个回答

所属标签

相似分享

官网相关资源

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