|
本文为大家介绍STM32H7带的ITCM,DTCM,AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4和备份SRAM的基础知识。& j6 y4 ^. W3 y! C 7 d/ O$ e9 N7 t0 b ; z2 d: t/ {2 k: @8 O4 k6 g# d+ y( b 上图可以方便识别总线所外挂的外设,共分为三个域:D1 Domain,D2 Domain和D3 Domain。; N `( M$ N6 R, \# p( ?' l / Z1 i3 ^7 _8 N 1、 ITCM和DTCM+ s. x7 C9 G6 Y! l 这两个是直连CPU的。 e3 \9 D, o! ^7 P! e A" {* P - }7 h5 X7 }( ], P& R0 U 2、 D1 Domain ) P+ M- T) j4 m4 V9 | D1域中的各个外设是挂在64位A**线组成6*7的矩阵上。9 v, D0 ?, ^1 B8 n8 ? 6个从接口端ASIB1到ASIB6,外接的主控是LTDC,DMA2D,MDMA,SDMMC1,AXIM和D2-to-D1 AHB 总线。$ I+ [9 B8 Y* ]& Y5 U. T 7个主接口端AMIB1到AMIB7,外接的从设备是AHB3总线,Flash A,Flash B,FMC总线,QSPI和AXI SRAM。另外AHB3也是由A**线分支出来的,然后再由AHB3分支出APB3总线。" V/ |: O: l/ F# l7 t 3、 D2 Domain& d1 Y1 w5 S! Z" X; Q, K+ Q2 d! x D2域的各个外设是挂在32位AHB总线组成10*9的矩阵上。 10个从接口,外接的主控是D1-to-D2 AHB 总线,AHBP总线,DMA1,DMA2,Ethernet MAC,SDMMC2,USB HS1和USB HS2。# g2 M( p2 u* p- q; G 9个主接口,外接的从设备是SRAM1,SRMA2,SRAM3,AHB1,AHB2,APB1,APB2,D2-to-D1 AHB总线和D2-to-D3 AHB总线。& V% _* n; [$ y+ i$ l 4、 D3 Domain D3域的各个外设是挂在32位AHB总线组成3*2的矩阵上。& j+ A, _! `: D6 L' l2 W# u. b& H% s$ ^2 v % N, C( G K7 G6 T 3个从接口,外接的主控D1-to-D3 AHB总线,D2-to-D3 AHB总线和BDMA。 2个主接口,外接的从设备是AHB4,SRAM4和Bckp SRAM。另外AHB4也是这个总线矩阵分支出来的,然后再由AHB4分支出APB4总线 **各块RAM特性** ) n, W+ o/ a( R) x, | 各块RAM的特性对比如下,特别注意他们支持的最大速度和容量大小。% q& |7 {% k6 l# r! [0 r7 V: m . M. T7 R) U# |' {8 [ **TCM区**7 q7 d/ n7 e3 `% m 5 Y: F* q5 C& W# r TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM用于运行指令,也就是程序代码,DTCM用于数据存取,特点是跟内核速度一样,而片上RAM的速度基本都达不到这个速度,所以有降频处理。; p$ o: w" J' M & T; e7 w. Z4 o4 D 速度:400MHz。DTCM地址:0x2000 0000,大小128KB。ITCM地址:0x0000 0000,大小64KB。 2 b6 N( f: H6 n! Z) g3 { **AXI SRAM区** 位于D1域,数据带宽是64bit,挂在A**线上。除了D3域中的BDMB主控不能访问,其它都可以访问此RAM区。 ; H: j8 {. s) G# d* A9 x 速度:200MHz。地址:0x2400 0000,大小512KB。用途:用途不限,可以用于用户应用数据存储或者LCD显存。 **SRAM1,SRAM2和SRAM3区** 位于D2域,数据带宽是32bit,挂在AHB总线上。除了D3域中的BDMB主控不能访问这三块SRAM,其它都可以访问这几个RAM区。& S2 {5 K2 H5 w9 S4 H" Q$ L; Z- i 速度:200MHz。 SRAM1:地址0x3000 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以当D1域断电后用于运行程序代码。 SRAM2:地址0x3002 0000,大小128KB,用途不限,可用于D2域中的DMA缓冲,也可以用于用户数据存取。9 Z8 q8 K, k* }2 R SRAM3:地址0x3004 0000,大小32KB,用途不限,主要用于以太网和USB的缓冲。 . F- P' q. W7 ?: Y S( \& Q% x **SRAM4区** 3 m' t: P( j2 n* P, o8 { 位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访这块SRAM区。 速度:200MHz。, @" N, T6 r; G; a8 Z 地址:0x3800 0000,大小64KB。3 S$ {. J ~1 ` b/ v 0 V6 J* g; }9 v% C( q8 W 用途:用途不限,可以用于D3域中的DMA缓冲,也可以当D1和D2域进入DStandby待机方式后,继续保存用户数据。 **Backup SRAM区** $ a1 J0 T6 c( v( h 备份RAM区,位于D3域,数据带宽是32bit,挂在AHB总线上,大部分主控都能访问这块SRAM区。0 q# C4 Q/ N9 Z3 D& r3 p, ~ 速度:200MHz。 地址:0x3880 0000,大小4KB。 2 N( C/ X/ y" [7 o; A% K% ~ 用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat引脚外接电池)。9 C/ s- ?4 j2 O# L$ d$ k RAM的时钟问题 3 ` e( Y# _+ o/ n' a9 D0 p" l 正常情况下,系统上电后,CPU要访问的外设是需要使能对应的时钟位,但是下面这几个,CPU上电即可访问,而且芯片没有对应的寄存器使能位。/ @1 O( w6 \# [5 C7 d. v, k9 d + Q6 y- z% |+ P  % A5 }) h) f1 ^9 f 也就是说AXI SRAM,SRAM4,ITCM和DTCM可以在上电后直接使用。而SRAM1,SRAM2,SRAM3是需要使能的,但是实际测试发现,不使能也可以正常使用。不过,建议用到时候开启下时钟,防止意想不到的问题发生。 **RAM的DMA问题**. d& P6 b: a5 J 先看下面的Bus Master总线主控端和Bus Slave设备端的控制互联:  * }: \2 N& K2 ~8 Q* G6 H) r 加粗字体是64位总线(ITCM,DTCM,Flash A,Flash,AXI SRAM,FMC等),普通字体是32位总线。 访问通路(每个小方块里面的字符) 任何有数字的表示有访问通路。0 n5 U4 n. J7 Q7 Z( ~8 m) p9 { 短横杠“-”表示不可访问。 有灰色阴影的表示有实用价值的访问通路。( W" ~! p6 ]; {. f: o 表格中具体数值所代表的含义$ P) e3 s. O! M5 N, v D=direct, 1=via AXI bus matrix, 2=via AHB bus matrix in D2, 3=via AHB bus matrix in D3,$ W& P# f& r# q) o3 C 4=via AHB/APB bridge in D1, 5=via AHB/APB bridge in D2, 6=via AHB/APB bridge in D3, 7=via AHBS bus of Cortex-M7,& ~( V, J" g. W$ x$ e. P$ L 多个数值组合 = 互连路径以数字的顺序经过多个矩阵或/和桥。8 Q0 A: Z! M/ E! r4 U2 I 总线访问类型# z1 ?7 y9 {. c5 Q% a+ y3 I 普通字体表示32位总线。# L" M. {4 @# h" h4 L0 K7 H4 h ' w! a8 d3 v+ | J' Q 斜体表示32位总线主机端/ 64位总线从机端。 1 u: Q k$ l/ E$ {. C 粗体表示64位总线。 通过这个总线互联图,要了解到下面三个重要知识点:* q+ s1 H' \6 s6 ]1 Q DTCM和ITCM不支持DMA1,DMA2和BDMA,仅支持MDMA。9 T" E7 h6 X# U4 C/ r$ V AXI SRAM,SRAM1,SRAM2,SRAM3不支持BDMA,支持MDMA,DMA1和DMA2。 SRAM4支持所有DMA,即MDMA,DMA1,DMA2和BDMA。/ M! h, f( a# ^" H0 {+ T' \5 x |
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
【福利三:逢7发帖赢大礼】成功利用STM32H743VI片内SRAM12和DTCM空间(完全胜利)
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
【福利三:逢7发帖赢大礼】使用惠勤致远STM32H743VI开发板+ST7796并口彩屏移植LVGL9.5并分享一些额外内容
【 逢7发帖赢大礼】7、TouchGFX中实现云彩流动效果
微信公众号
手机版