• 【STM32H7教程】第25章 STM32H7的TCM,SRAM等五块内存基础知识


    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

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

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

    25.1 初学者重要提示

    25.2 各块RAM在总线中的位置

    25.3 各块RAM的特性

    25.4 各块RAM的时钟问题

    25.5 各块RAM的DMA问题

    25.6 实际工程推荐的RAM分配方案

    25.7 总结

    25.1 初学者重要提示

    1.   TCM : Tightly-Coupled Memory 紧密耦合内存 。ITCM用于指令,DTCM用于数据,特点是跟内核速度一样,而片上RAM的速度基本都达不到这个速度。
    2.   特别注意本章25.5小节里面各块RAM的DMA操作问题。

    25.2 各块RAM在总线中的位置

    这个知识点在前面章节做过介绍,本章再次梳理下这个知识点。

     

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

    1、  ITCM和DTCM

    这两个是直连CPU的。

    2、  D1 Domain

    D1域中的各个外设是挂在64位AXI总线组成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也是由AXI总线分支出来的,然后再由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总线

    25.3 各块RAM特性

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

    •   TCM区

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

    速度:400MHz。

    DTCM地址:0x2000 0000,大小128KB。

    ITCM地址:0x0000 0000,大小64KB。

    •   AXI SRAM区

    位于D1域,数据带宽是64bit,挂在AXI总线上。除了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引脚外接电池)。

    25.4 各块RAM的时钟问题

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

     

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

    对于V7板子配套的例子,在bsp.c文件的函数SystemClock_Config末尾做了个条件编译,大家可以根据需要来开启这三个时钟:

    #if 0
        __HAL_RCC_D2SRAM1_CLK_ENABLE();
        __HAL_RCC_D2SRAM2_CLK_ENABLE();
        __HAL_RCC_D2SRAM3_CLK_ENABLE();
    #endif

    25.5 各块RAM的DMA问题

    了解这个问题之前,要先看下面的Bus Master总线主控端和Bus Slave设备端的控制互联:

     

    •   加粗字体是64位总线(ITCM,DTCM,Flash A,Flash,AXI SRAM,FMC等),普通字体是32位总线。
    •   访问通路(每个小方块里面的字符)

        任何有数字的表示有访问通路。

        短横杠“-”表示不可访问。

        有灰色阴影的表示有实用价值的访问通路。

    •   表格中具体数值所代表的含义

        D=direct,

        1=via AXI bus matrix,

        2=via AHB bus matrix in D2,

        3=via AHB bus matrix in D3,

        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,

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

    •   总线访问类型

    普通字体表示32位总线。

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

    粗体表示64位总线。

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

    1.   DTCM和ITCM不支持DMA1,DMA2和BDMA,仅支持MDMA。
    2.   AXI SRAM,SRAM1,SRAM2,SRAM3不支持BDMA,支持MDMA,DMA1和DMA2。
    3.   SRAM4支持所有DMA,即MDMA,DMA1,DMA2和BDMA。

    25.6 实际工程推荐的RAM分配方案

    鉴于DTCM是400MHz的,而其它的RAM都是200MHz,推荐工程的主RAM空间采用TCM,而其它需要大RAM或者DMA的场合,使用剩余RAM空间。

    本教程配套的例子基本都是采用的这个方案,让TCM的性能得到最大发挥。

    25.7 总结

    本章节就为大家讲解这么多,通过本章节主要是为后面三个章节的学习做铺垫。

  • 相关阅读:
    低调 、隐忍、善良应是最应该修炼的
    达内C++培训课程
    这三天低效率开发的总结,我都做了些什么啊?
    linux sysfs(1)
    编码问题
    Linux中的system函数的实现和解释
    北京邮电大学 程序设计课程设计 电梯 文件输入版本(已调试,大致正确运行==)
    "Dallas" CTP3 发布通告
    结合使用PowerPivot 和 "Dallas" CTP3
    Windows Azure 解决方案系列: 能源监测减少支出,通过托管平台拓展业务
  • 原文地址:https://www.cnblogs.com/armfly/p/11014230.html
Copyright © 2020-2023  润新知