|
本文为大家介绍STM32H7带的ITCM,DTCM,AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4和备份SRAM的基础知识。) M+ i l! l0 z5 _# x: ^  上图可以方便识别总线所外挂的外设,共分为三个域:D1 Domain,D2 Domain和D3 Domain。$ H& T- C2 N0 j8 \ \" ~ 3 Q# t3 c4 k+ g) l$ @2 v. ` 1、 ITCM和DTCM6 p9 l8 @& v- ]: e3 h+ b 这两个是直连CPU的。& Y1 f* Y2 ^: ?4 Q/ m, s' w : m3 U8 y6 S2 S: c+ o 2、 D1 Domain D1域中的各个外设是挂在64位A**线组成6*7的矩阵上。 $ Z$ k5 J3 o: p! C 6个从接口端ASIB1到ASIB6,外接的主控是LTDC,DMA2D,MDMA,SDMMC1,AXIM和D2-to-D1 AHB 总线。) L, S+ I) R! [ ?+ m) U+ J% d3 s 1 ^: P' U; S; `! l( z+ l, W! e 7个主接口端AMIB1到AMIB7,外接的从设备是AHB3总线,Flash A,Flash B,FMC总线,QSPI和AXI SRAM。另外AHB3也是由A**线分支出来的,然后再由AHB3分支出APB3总线。 ?2 P! S2 @+ P9 e 3、 D2 Domain D2域的各个外设是挂在32位AHB总线组成10*9的矩阵上。- j5 g1 C/ Z3 T' C5 ]9 p 7 Z: R* f s( Y 10个从接口,外接的主控是D1-to-D2 AHB 总线,AHBP总线,DMA1,DMA2,Ethernet MAC,SDMMC2,USB HS1和USB HS2。: ^0 \: d. w4 m$ V/ s 9个主接口,外接的从设备是SRAM1,SRMA2,SRAM3,AHB1,AHB2,APB1,APB2,D2-to-D1 AHB总线和D2-to-D3 AHB总线。6 {9 t. G& J( w " ^- O i4 r& F5 g6 r 4、 D3 Domain , L5 ?. ?# n$ i4 d- ~9 q D3域的各个外设是挂在32位AHB总线组成3*2的矩阵上。 % H9 g z- r7 n3 m4 q. L 3个从接口,外接的主控D1-to-D3 AHB总线,D2-to-D3 AHB总线和BDMA。# Q, k1 P6 R% Z, e9 R % X( `! q( G) r K* ?: s 2个主接口,外接的从设备是AHB4,SRAM4和Bckp SRAM。另外AHB4也是这个总线矩阵分支出来的,然后再由AHB4分支出APB4总线 9 y2 }# c9 y( W; ~- r, v **各块RAM特性**( q* Z# R0 Y% w: X 8 o+ p& s5 N! J A! r7 X 各块RAM的特性对比如下,特别注意他们支持的最大速度和容量大小。" n4 z% H n# r0 y/ D5 q# `, y **TCM区** ( e2 B' O' P4 M! O7 T* ^ TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM用于运行指令,也就是程序代码,DTCM用于数据存取,特点是跟内核速度一样,而片上RAM的速度基本都达不到这个速度,所以有降频处理。9 X0 T, `6 @# U5 U+ I( B/ p 速度:400MHz。DTCM地址:0x2000 0000,大小128KB。ITCM地址:0x0000 0000,大小64KB。7 C9 R n- G" H **AXI SRAM区** 位于D1域,数据带宽是64bit,挂在A**线上。除了D3域中的BDMB主控不能访问,其它都可以访问此RAM区。2 \6 L' X9 }1 ?" _2 C! { 速度:200MHz。地址:0x2400 0000,大小512KB。用途:用途不限,可以用于用户应用数据存储或者LCD显存。7 a5 V. F% y$ L7 _9 a7 m **SRAM1,SRAM2和SRAM3区**# B9 H/ G3 v+ M2 I- R; _$ G1 h q/ B. ]8 l0 f J 位于D2域,数据带宽是32bit,挂在AHB总线上。除了D3域中的BDMB主控不能访问这三块SRAM,其它都可以访问这几个RAM区。 6 ]* D# @! `; r' m. y) X 速度:200MHz。1 m# `/ x2 _, O; @* e5 u6 b' b 9 Q2 F" Q1 U5 T8 h# h5 C* U: t/ V SRAM1:地址0x3000 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以当D1域断电后用于运行程序代码。 SRAM2:地址0x3002 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以用于用户数据存取。 ( Q% S$ x8 ^, t: u SRAM3:地址0x3004 0000,大小32KB,用途不限,主要用于以太网和USB的缓冲。 : z. m' y6 |) g/ Y$ s3 ?# ] **SRAM4区** 4 c3 q S' Y1 l5 }3 A% g 位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访这块SRAM区。9 b6 G( ]4 D% G/ M$ F$ [6 l 速度:200MHz。( I0 m; @8 }2 b8 C( Q3 G; X" p 6 Q e, W$ N/ \4 {2 o9 [- [ 地址:0x3800 0000,大小64KB。 用途:用途不限,可以用于D3域中的DMA缓冲,也可以当D1和D2域进入DStandby待机方式后,继续保存用户数据。 % l8 e0 w7 d" Q3 V3 L **Backup SRAM区**, B+ P3 r/ @+ a . W& C! i) \3 g- | 备份RAM区,位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访问这块SRAM区。4 b. @' [+ r6 ~1 d/ q# F: U& P 速度:200MHz。 地址:0x3880 0000,大小4KB。7 N# f) q5 a0 ?7 F N4 B1 u 5 \2 `, f5 g7 Y6 c 用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat引脚外接电池)。 RAM的时钟问题" _. {) {3 ^/ ]: w( E6 [ : x$ _; y Y3 d 正常情况下,系统上电后,CPU要访问的外设是需要使能对应的时钟位,但是下面这几个,CPU上电即可访问,而且芯片没有对应的寄存器使能位。 3 n( S9 U4 {0 b5 Z8 }  也就是说AXI SRAM,SRAM4,ITCM和DTCM可以在上电后直接使用。而SRAM1,SRAM2,SRAM3是需要使能的,但是实际测试发现,不使能也可以正常使用。不过,建议用到时候开启下时钟,防止意想不到的问题发生。 **RAM的DMA问题** z* q) h2 h2 s" k( j8 m 先看下面的Bus Master总线主控端和Bus Slave设备端的控制互联: 9 ~+ c, x# T. C, d3 a' u / P0 X: Y" Y0 [% {/ p8 y 加粗字体是64位总线(ITCM,DTCM,Flash A,Flash,AXI SRAM,FMC等),普通字体是32位总线。% w7 i6 s2 f& T' u+ Y0 t9 n 访问通路(每个小方块里面的字符)9 L, k% R' q0 s6 X6 E3 | 任何有数字的表示有访问通路。 短横杠“-”表示不可访问。! q6 p( d) f% ]) P 有灰色阴影的表示有实用价值的访问通路。& W6 H6 R, J* c6 [! l. w" m 表格中具体数值所代表的含义* A3 L) Q# h7 l& [% J, K9 b2 f9 x D=direct,0 h- N- ?7 H( k2 W- W5 Z 1=via AXI bus matrix, 2=via AHB bus matrix in D2, 3=via AHB bus matrix in D3,% A: o$ e; C+ ?: q2 \ 4=via AHB/APB bridge in D1, 5=via AHB/APB bridge in D2,/ h! x0 u- I) U( n0 |( j 6=via AHB/APB bridge in D3, 7=via AHBS bus of Cortex-M7,- j/ Q. Q) c4 \9 v9 U$ R, B9 W 1 x: o3 u, K3 X" l) ^ 多个数值组合 = 互连路径以数字的顺序经过多个矩阵或/和桥。 总线访问类型 普通字体表示32位总线。 斜体表示32位总线主机端/ 64位总线从机端。, A, i+ s! L# z8 a- U1 o6 j 3 V. V& {1 `+ |8 B( Y1 u, i& y 粗体表示64位总线。$ k1 }3 k* i$ M- l) `4 R0 b- x * r8 K' k' _# J3 n; H0 d" G( W" J; G 通过这个总线互联图,要了解到下面三个重要知识点: DTCM和ITCM不支持DMA1,DMA2和BDMA,仅支持MDMA。 4 ], K7 C& H. J1 k9 {1 i AXI SRAM,SRAM1,SRAM2,SRAM3不支持BDMA,支持MDMA,DMA1和DMA2。 SRAM4支持所有DMA,即MDMA,DMA1,DMA2和BDMA。- \8 j- a* l# N" q: J |
【STM32H5 评测】1、开发板资源和程序开发
NUCLEO-H5E5ZJ 以太网(Ethernet)移植记录
【STM32H5 评测】1、移植记录(LED / Shell)
H5E5开发板评测-1
H5E5评测-4
H5E5评测-3
H5E5评测-2
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
微信公众号
手机版