STMCU小助手
发布时间:2021-12-27 18:00
|
在使用之前我们要先学**H7的内存分布,之前可能接触过ST的程序员没有发现有内存分布的特性,这可能是在M7系列新加的特性。 4 Y( [- ]* ]5 p4 r5 I$ ^8 R TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于指令,DTCM 用于数据,特点是跟内 核速度一样,而片上 RAM 的速度基本都达不到这个速度。 ITCM 和 DTCM 这两个是直连 CPU 的。 TCM 区 TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM 用于运行指令,也就是程序代码,DTCM 用于数据存取,特点是跟内核速度一样,而片上 RAM 的速度基本都达不到这个速度,所以有降频处 理。 速度:400MHz。 DTCM 地址:0x2000 0000,大小 128KB。 ITCM 地址:0x0000 0000,大小 64KB。 0 O1 T+ [- R" _! M8 r AXI SRAM 区 位于 D1 域,数据带宽是 64bit,挂在 AXI 总线上。除了 D3 域中的 BDMB 主控不能访问,其它都可: {2 p& n' G0 m1 q4 r% I* K& V+ k3 O! d 以访问此 RAM 区。! y6 T1 k5 C) ~) }3 ~, R! D 速度:200MHz。 地址:0x2400 0000,大小 512KB。! r% C! B' R; g/ V 用途:用途不限,可以用于用户应用数据存储或者 LCD 显存。2 B& c0 c/ R% v ( J/ Z2 [; D4 |) ^ SRAM1,SRAM2 和 SRAM3 区 SRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当 D1 域断电后用于运行程序代码。 SRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于 用户数据存取。3 A2 o2 R# G6 X( G$ a; J SRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。 SRAM4 区6 d- n: H1 T, S$ j' ~* w a 位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访这块 SRAM 区。 速度:200MHz。7 d6 J, i, c( L- _& W0 m 地址:0x3800 0000,大小 64KB。; v" ~+ s8 R0 P& }+ Z! x8 Y/ Z+ R 用途:用途不限,可以用于 D3 域中的 DMA 缓冲,也可以当 D1 和 D2 域进入 DStandby 待机方式& q" F, j1 z# x# ]% m' A3 Y 后,继续保存用户数据。 Backup SRAM 区. O1 F1 [) {* [0 C1 ^ 备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM 区。 速度:200MHz。8 p/ ?- n3 D$ k/ T) \ 地址:0x3880 0000,大小 4KB。) |9 k8 {6 b, F* w- f 用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat 引脚外接电池)。 各块 RAM 的 DMA 问题' F3 u* p) m8 N0 \! D) o, u 之前写了一个空闲中断+DMA的例子,在F4的板子稳定运行,可是在H7上跑不通,所以才注意到了内存分布对DMA的影响8 H: S0 x0 w: F+ D( e: D$ b# a DTCM 和 ITCM 不支持 DMA1,DMA2 和 BDMA,仅支持 MDMA。5 x/ n, R5 D; \6 f6 |4 O5 B" o AXI SRAM,SRAM1,SRAM2,SRAM3 不支持 BDMA,支持 MDMA,DMA1 和 DMA2。4 r" ~9 N+ d# R2 U4 W$ x SRAM4 支持所有 DMA,即 MDMA,DMA1,DMA2 和 BDMA。5 I' M4 Y% g8 o 鉴于 DTCM 是 400MHz 的,而其它的 RAM 都是 200MHz,推荐工程的主 RAM 空间采用 TCM,而 其它需要大 RAM 或者 DMA 的场合,使用剩余 RAM 空间。2 D4 A4 w3 |6 ]7 K, Z' [7 v% @ h 本教程配套的例子基本都是采用的这个方案,让 TCM 的性能得到最大发挥。' z0 T3 x. E$ _* h" q( L- u0 o |
【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中实现云彩流动效果
微信公众号
手机版