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

STM32H7的TCM,SRAM等五块内存基础知识

[复制链接]
flyingstar 发布时间:2025-3-26 13:19

本文为大家介绍STM32H7带的ITCM,DTCM,AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4和备份SRAM的基础知识。

1741253722489722.png * I1 {: k/ S. P) R1 V$ U* d0 \

上图可以方便识别总线所外挂的外设,共分为三个域:D1 Domain,D2 Domain和D3 Domain。

1、  ITCM和DTCM

这两个是直连CPU的。

2、  D1 Domain

D1域中的各个外设是挂在64位A**线组成6*7的矩阵上。

  6个从接口端ASIB1到ASIB6,外接的主控是LTDC,DMA2D,MDMA,SDMMC1,AXIM和D2-to-D1 AHB 总线。

  7个主接口端AMIB1到AMIB7,外接的从设备是AHB3总线,Flash A,Flash B,FMC总线,QSPI和AXI SRAM。另外AHB3也是由A**线分支出来的,然后再由AHB3分支出APB3总线。

3、  D2 Domain

D2域的各个外设是挂在32位AHB总线组成10*9的矩阵上。

  10个从接口,外接的主控是D1-to-D2 AHB 总线,AHBP总线,DMA1,DMA2,Ethernet MAC,SDMMC2,USB HS1和USB HS2。

  9个主接口,外接的从设备是SRAM1,SRMA2,SRAM3,AHB1,AHB2,APB1,APB2,D2-to-D1 AHB总线和D2-to-D3 AHB总线。

4、  D3 Domain

D3域的各个外设是挂在32位AHB总线组成3*2的矩阵上。

3个从接口,外接的主控D1-to-D3 AHB总线,D2-to-D3 AHB总线和BDMA。

2个主接口,外接的从设备是AHB4,SRAM4和Bckp SRAM。另外AHB4也是这个总线矩阵分支出来的,然后再由AHB4分支出APB4总线

各块RAM特性

各块RAM的特性对比如下,特别注意他们支持的最大速度和容量大小。

TCM区

TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM用于运行指令,也就是程序代码,DTCM用于数据存取,特点是跟内核速度一样,而片上RAM的速度基本都达不到这个速度,所以有降频处理。

速度:400MHz。DTCM地址:0x2000 0000,大小128KB。ITCM地址:0x0000 0000,大小64KB。

AXI SRAM区

位于D1域,数据带宽是64bit,挂在A**线上。除了D3域中的BDMB主控不能访问,其它都可以访问此RAM区。

速度:200MHz。地址:0x2400 0000,大小512KB。用途:用途不限,可以用于用户应用数据存储或者LCD显存。

SRAM1,SRAM2和SRAM3区

位于D2域,数据带宽是32bit,挂在AHB总线上。除了D3域中的BDMB主控不能访问这三块SRAM,其它都可以访问这几个RAM区。

速度:200MHz。

SRAM1:地址0x3000 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以当D1域断电后用于运行程序代码。

SRAM2:地址0x3002 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以用于用户数据存取。

SRAM3:地址0x3004 0000,大小32KB,用途不限,主要用于以太网和USB的缓冲。

SRAM4区

位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访这块SRAM区。

速度:200MHz。

地址:0x3800 0000,大小64KB。

用途:用途不限,可以用于D3域中的DMA缓冲,也可以当D1和D2域进入DStandby待机方式后,继续保存用户数据。

Backup SRAM区

备份RAM区,位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访问这块SRAM区。

速度:200MHz。

地址:0x3880 0000,大小4KB。

用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat引脚外接电池)。

RAM的时钟问题

正常情况下,系统上电后,CPU要访问的外设是需要使能对应的时钟位,但是下面这几个,CPU上电即可访问,而且芯片没有对应的寄存器使能位。

1741255389164756.png
: w0 N$ Z/ F1 O) C4 u4 K/ K

也就是说AXI SRAM,SRAM4,ITCM和DTCM可以在上电后直接使用。而SRAM1,SRAM2,SRAM3是需要使能的,但是实际测试发现,不使能也可以正常使用。不过,建议用到时候开启下时钟,防止意想不到的问题发生。

RAM的DMA问题

先看下面的Bus Master总线主控端和Bus Slave设备端的控制互联:

1741255635967624.png * I- {: M3 m- b8 ~

加粗字体是64位总线(ITCM,DTCM,Flash A,Flash,AXI SRAM,FMC等),普通字体是32位总线。5 A- C6 N' W' s$ I0 A
访问通路(每个小方块里面的字符)- ]) x. W, N; ^$ f' M4 q
    任何有数字的表示有访问通路。
" z4 y- j, B- w7 m6 V    短横杠“-”表示不可访问。
9 X8 h0 f0 V7 n; P    有灰色阴影的表示有实用价值的访问通路。" N: q4 u, f  t9 X
表格中具体数值所代表的含义
" d% j1 x# Z1 E7 V    D=direct,
8 p/ ?" l. T* @# [* U; T( e    1=via AXI bus matrix,5 I$ E( M' z9 |% Y
    2=via AHB bus matrix in D2,
( Z. R+ {5 p$ l( B; Q: L    3=via AHB bus matrix in D3,0 m" S+ Q, |/ v9 b
    4=via AHB/APB bridge in D1,
: [; u1 A' g; d  K    5=via AHB/APB bridge in D2,' ^4 A# S1 i8 u
    6=via AHB/APB bridge in D3,
: J3 P6 Q& y& b+ Y    7=via AHBS bus of Cortex-M7,

多个数值组合 = 互连路径以数字的顺序经过多个矩阵或/和桥。

总线访问类型

普通字体表示32位总线。

斜体表示32位总线主机端/ 64位总线从机端。

粗体表示64位总线。1 }3 U! }. K: [0 c

通过这个总线互联图,要了解到下面三个重要知识点:

DTCM和ITCM不支持DMA1,DMA2和BDMA,仅支持MDMA。

AXI SRAM,SRAM1,SRAM2,SRAM3不支持BDMA,支持MDMA,DMA1和DMA2。

SRAM4支持所有DMA,即MDMA,DMA1,DMA2和BDMA。


/ m5 v& f! t$ A; ^  H5 V0 ^
收藏 评论0 发布时间:2025-3-26 13:19

举报

0个回答

所属标签

相似分享

官网相关资源

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