|
本文为大家介绍STM32H7带的ITCM,DTCM,AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4和备份SRAM的基础知识。- C/ S, p/ k! V( b1 G' P , O9 q, B: [2 K) s+ e" @, [  上图可以方便识别总线所外挂的外设,共分为三个域:D1 Domain,D2 Domain和D3 Domain。* [1 p1 U( ]8 g/ d0 @( L, Z+ z0 ? $ T+ ~) H* U4 ~! u 1、 ITCM和DTCM 这两个是直连CPU的。, J7 p# N/ I9 v 2、 D1 Domain 0 C% K0 c1 l+ X/ v9 f D1域中的各个外设是挂在64位A**线组成6*7的矩阵上。 2 W" H3 O; Z, N/ m6 B/ T6 q 6个从接口端ASIB1到ASIB6,外接的主控是LTDC,DMA2D,MDMA,SDMMC1,AXIM和D2-to-D1 AHB 总线。5 V8 r! {8 r' D7 ^ W$ }% n 7个主接口端AMIB1到AMIB7,外接的从设备是AHB3总线,Flash A,Flash B,FMC总线,QSPI和AXI SRAM。另外AHB3也是由A**线分支出来的,然后再由AHB3分支出APB3总线。 3、 D2 Domain D2域的各个外设是挂在32位AHB总线组成10*9的矩阵上。' d4 ]4 P; a% A( D- d. n , M: w! R, t% d) j* R+ N' y$ E 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总线。5 e8 d7 g4 O8 _4 b% b1 s" }$ ] ( U$ p( _9 `1 t7 k/ { 4、 D3 Domain- A" {. W1 S( T. o7 X , ]- t" z$ g: Y0 `1 _; y' h- n D3域的各个外设是挂在32位AHB总线组成3*2的矩阵上。 0 o5 {! t8 _! O( Q! t 3个从接口,外接的主控D1-to-D3 AHB总线,D2-to-D3 AHB总线和BDMA。- N L. }# w2 L 3 i0 g1 L% ]7 V4 L 2个主接口,外接的从设备是AHB4,SRAM4和Bckp SRAM。另外AHB4也是这个总线矩阵分支出来的,然后再由AHB4分支出APB4总线+ G* J1 S5 b* c& }! S3 ~6 Z: J) \ **各块RAM特性**$ D' S# K" h3 W! F* A 各块RAM的特性对比如下,特别注意他们支持的最大速度和容量大小。 **TCM区**3 p; Z. q' V/ f6 K& o) } , C. u8 F3 Y) | g$ f, V TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM用于运行指令,也就是程序代码,DTCM用于数据存取,特点是跟内核速度一样,而片上RAM的速度基本都达不到这个速度,所以有降频处理。 " \4 S- R2 s% `/ R3 E# \% y 速度:400MHz。DTCM地址:0x2000 0000,大小128KB。ITCM地址:0x0000 0000,大小64KB。3 A5 T9 J1 A; I **AXI SRAM区** 位于D1域,数据带宽是64bit,挂在A**线上。除了D3域中的BDMB主控不能访问,其它都可以访问此RAM区。 速度:200MHz。地址:0x2400 0000,大小512KB。用途:用途不限,可以用于用户应用数据存储或者LCD显存。- |, M+ A. u. m/ _8 ~! v# Y **SRAM1,SRAM2和SRAM3区**3 N% L2 f# j+ L" N" u7 H) q 位于D2域,数据带宽是32bit,挂在AHB总线上。除了D3域中的BDMB主控不能访问这三块SRAM,其它都可以访问这几个RAM区。. p _/ y* b+ @, f $ e K4 e' ^& p1 m 速度:200MHz。& K; B! f6 x1 ]) P8 e( J SRAM1:地址0x3000 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以当D1域断电后用于运行程序代码。 8 m& s8 [7 ]' R SRAM2:地址0x3002 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以用于用户数据存取。 : n- u& ? M: _ A" g. @+ n4 R SRAM3:地址0x3004 0000,大小32KB,用途不限,主要用于以太网和USB的缓冲。 **SRAM4区**2 v- X* u3 c' L3 G! w/ | 8 }: s1 v W# {9 V! G" o; f 位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访这块SRAM区。 " n/ |7 Q; x/ i+ s u 速度:200MHz。 地址:0x3800 0000,大小64KB。 用途:用途不限,可以用于D3域中的DMA缓冲,也可以当D1和D2域进入DStandby待机方式后,继续保存用户数据。 $ V" H/ w! ^- K |; q4 \% ^( | **Backup SRAM区** 备份RAM区,位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访问这块SRAM区。$ V! S4 l; q( ?( h" P( T* @ 速度:200MHz。 6 d3 I4 O8 Y7 ] p' v! h, O 地址:0x3880 0000,大小4KB。" s( r+ |1 _' b! b, B 6 k) V `1 l6 b# h: c# k& M* ] 用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat引脚外接电池)。- |; |4 c, k0 L! P* s6 ~( M7 Z ) v1 Q) T! a* k* @* l RAM的时钟问题! p7 ]8 R# K, [* l 正常情况下,系统上电后,CPU要访问的外设是需要使能对应的时钟位,但是下面这几个,CPU上电即可访问,而且芯片没有对应的寄存器使能位。 & W( a6 G$ D* l- M' k 7 V# t# L( G! h6 v3 _$ V0 ^6 t3 w ' D% ]7 x3 F# v, |) ^& c- Y- U 也就是说AXI SRAM,SRAM4,ITCM和DTCM可以在上电后直接使用。而SRAM1,SRAM2,SRAM3是需要使能的,但是实际测试发现,不使能也可以正常使用。不过,建议用到时候开启下时钟,防止意想不到的问题发生。 **RAM的DMA问题** ' A& n* n) r) B. s6 k9 N. s 先看下面的Bus Master总线主控端和Bus Slave设备端的控制互联: , T9 g5 s% E$ o' f( U# }. \5 {2 n: t  # o! ?. ]8 g3 ?4 l7 u& E 加粗字体是64位总线(ITCM,DTCM,Flash A,Flash,AXI SRAM,FMC等),普通字体是32位总线。 访问通路(每个小方块里面的字符)8 U) V/ c" |0 z, b0 [) h 任何有数字的表示有访问通路。# s6 |, Q3 G2 V6 t. G1 a* C& _ 短横杠“-”表示不可访问。! B. O1 c) B2 w" _ 有灰色阴影的表示有实用价值的访问通路。 表格中具体数值所代表的含义$ p; S& |# u! K- V/ ^2 H4 s D=direct,% t. v/ C% } C! z; o 1=via AXI bus matrix,/ d- t9 Y' a$ O6 }7 |$ J 2=via AHB bus matrix in D2, 3=via AHB bus matrix in D3,2 {) @! M! `) O( q7 i) o' i 4=via AHB/APB bridge in D1,% b8 R( F6 b* U. ? 5=via AHB/APB bridge in D2,' {, F0 e. @2 c) [ 6=via AHB/APB bridge in D3, 7=via AHBS bus of Cortex-M7, ) i5 C9 R1 A9 Y6 J6 U. l 多个数值组合 = 互连路径以数字的顺序经过多个矩阵或/和桥。 总线访问类型 0 b9 Q/ w0 S. ~ 普通字体表示32位总线。% }/ X, _; d C 斜体表示32位总线主机端/ 64位总线从机端。 ' B, @3 S4 a% s5 q; R 粗体表示64位总线。 1 a- B3 `0 p. o, k) V 通过这个总线互联图,要了解到下面三个重要知识点:3 G5 p; s4 l9 y* v( C+ j DTCM和ITCM不支持DMA1,DMA2和BDMA,仅支持MDMA。 ! k) D. O) z, p* e2 [+ w AXI SRAM,SRAM1,SRAM2,SRAM3不支持BDMA,支持MDMA,DMA1和DMA2。 5 k! A" V( n& J SRAM4支持所有DMA,即MDMA,DMA1,DMA2和BDMA。 |
【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地址
微信公众号
手机版