STM32H743内部所有SRAM的使用

STM32H743内部所有SRAM的使用STM32H7 有 64KB 的 ITCMRAM 128KB 的 DTCMRAM D1 域 512KB 的 AXISRAM D2 域 128KBSRAM1 128KBSRAM2 32KBSRAM3 以及 D3 域 64KBSRAM4 和 4KB 备份 SRAM 具体详情请参考 STM32H7x3 编程参考手册 P96 我们可以自由地分配这些内存 目前 MDK 与 IAR 均支持这种内存使用方式 MDK 管理各个 D 域 SRAM 及 TCMRAM 的方法与步骤 通常情况下我们都是通过编译器分配内存区 但这种操作方法具有局限性 只能使用两个

STM32H7有64KB的ITCM RAM、128KB的DTCM RAM、D1域512KB的AXI SRAM、D2域128KB SRAM1+128KB SRAM2+32KB SRAM3以及D3域64KB SRAM4和4KB备份SRAM。(具体详情请参考STM32H7x3编程参考手册P96)我们可以自由地分配这些内存。目前,MDK与IAR均支持这种内存使用方式。

  1. MDK管理各个D域SRAM及TCM RAM的方法与步骤:
    在这里插入图片描述
    通常情况下我们都是通过编译器分配内存区:
    但这种操作方法具有局限性,只能使用两个连续的内存区,若要充分利用所有的内存资源,可通过修改后缀为.sct文件,该文件是通过选中on-chip中的IRAM1和IRAM2,编译器自动生成的脚本文件YS-H7Multi.sct。内容如下:
    在这里插入图片描述
    此代码中只定义了两个RAM内存区域:DTCM RAM(0x20000000-0x20020000)与AXI RAM(0x24000000-0x24080000)。现在我们使用其它D域的RAM.
    在这里插入图片描述
    现在我们定义了5块内存区,注意分号“;”在这里是屏蔽的作用。接着,如下图,点击Linker,再把”Use Memory Layout from Target Dialog”这一选项的勾勾去掉,最后加载编辑好的脚本文件YS-H7Multi.sct。
    在这里插入图片描述
    那我们如何使用这个脚本呢?
    在这里插入图片描述
    使用起来还是蛮简单的。验证实验:KEY1~KEY4操控着D1域的AXI RAM、D2域的SRAM1~SRAM3、D3域的SRAM4以及D3域备份RAM。打印出定义在各个内存区变量的地址,是否位于各内存区的地址。
    在这里插入图片描述
    由此得到验证。












  2. IAR管理各个D域SRAM及TCM RAM的方法与步骤:
    IAR相比MDK的设置要简单一些,仅需在IAR的配置文件stm32h743xx_flash.icf中添加如下代码即可, stm32h743xx_flash.icf文件位于如下下图所示:
    在这里插入图片描述
    打开stm32h743xx_flash.icf文件,并添加代码:
    在这里插入图片描述
    用户使用的话如下:
    在这里插入图片描述
    补充:如果用MDK时,想把堆栈放置不同D域的SRAM1中,可以这样:
    在这里插入图片描述
    先在YS-H7Multi.sct设置好堆栈使用哪块区域的内存,








在这里插入图片描述
再在startup_stm32h743xx.s文件设置堆栈大小,务必与第一步的堆栈大小一致。
最后打开YS-H7Multi.map文件核对堆栈起始地址是否一致

在这里插入图片描述

下载例程连接:https://download.csdn.net/download/Jaken5213/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228200.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午7:35
下一篇 2026年3月16日 下午7:35


相关推荐

  • log4cpp浅析

    log4cpp浅析log4cpp 是个基于 LGPL 的开源项目 移植自 Java 的日志处理跟踪项目 log4j 并保持了 API 上的一致 其类似的支持库还包括 Java log4j C log4cpp log4cplus C log4c python log4p 等 Log4cpp 中最重要概念有 Category 种类 Appender 附加器 Layout 布局 Priorty 优先级 NDC 嵌套的诊断上下文 Category Appender 与 Layout 三者的关系如下图所示

    2026年3月17日
    2
  • Android 低功耗蓝牙开发

    Android 低功耗蓝牙开发初识低功耗蓝牙Android4.3(APILevel18)开始引入BluetoothLowEnergy(BLE,低功耗蓝牙)的核心功能并提供了相应的API,应用程序通过这些API扫描蓝牙设备、查询services、读写设备的characteristics(属性特征)等操作。AndroidBLE使用的蓝牙协议是GATT协议,有关该协议的详细内容可以参见蓝牙官方文…

    2022年6月18日
    74
  • 四大AI模型深度横评:DeepSeek、Gemini、ChatGPT、豆包,开发者该如何选?

    四大AI模型深度横评:DeepSeek、Gemini、ChatGPT、豆包,开发者该如何选?

    2026年3月12日
    2
  • 5种获取JavaScript时间戳函数的方法

    5种获取JavaScript时间戳函数的方法来源 https www fly63 com 一 JavasCRIPT 时间转时间戳 JavaScript 获得时间戳的方法有五种 后四种都是通过实例化时间对象 newDate 来进

    2026年3月19日
    3
  • soapui的教程

    soapui的教程一.这里我安装的是5.2.1这个版本,安装之后按照我的操作步骤即可二.这里放入后台给你的接口,结尾应该是?wsdl如果没有你需要手动加上,否则会报错三:这个是成功界面四:如图,点开之后是这样的,在1的地方你需要输入对应的参数点击4进行查询,查询成功右侧会有对应的xml数据结果,具体参数需要输入什么,应用场景不同可以去问下后台这篇博客基本结合我的另一篇的ksoap2框架的博客一起使用…

    2022年6月25日
    26
  • pytorch实现Senet 代码详解

    pytorch实现Senet 代码详解Senet 的优点 senet 的优点在于增加少量的参数便可以一定程度的提高模型的准确率 是第一个在成型的模型基础之上建立的策略 创新点非常的好 很适合自己创作新模型刷高准确率的一种方法 Senet 的结构本文的代码讲解是以 resnet50 讲解 上图便是 senet 的结构 应用于已经构造完成的 resnet 模型 只不过在加上了一层 se 结构的卷积 se 结构是在特征图最后进行的 out channels

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号