STM32H743内部所有SRAM的使用
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均支持这种内存使用方式。
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。打印出定义在各个内存区变量的地址,是否位于各内存区的地址。
由此得到验证。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/15467599
STM32H743内部所有SRAM的使用相关推荐
- STM32H743+CubeMX-使用ADC(16bit分辨率)模数转换器读取CPU的温度(串行方式)
文章目录 一.前言 二.CubeMX 2.1.RCC 2.2.SYS 2.3.ADC 2.4.Clock Configuration 四.代码 4.1.adc.c 4.2.adc.h 4.3.main ...
- 2021-08-13 TM32F103 SRAM 内存扩展管理
SRAM 本文展示了STM32 SRAM 内存扩展管理 内容涉及 : SRAM 内存扩展管理 FatFs 文件系统移植 SPI函数移植过程 SPI字节数据模拟输出独写 缓存读写 USART串口的识别 ...
- 基于 AHB 总线的 SRAM 控制器设计
基于 AHB 总线的 SRAM 控制器设计 一.基于 AHB 的 sram 设计 1.总体设计框架 2.AHB总线传输协议 ①没有等待状态的单个读写操作 ②有等待状态的单个读写操作 ③连续读写操作 二 ...
- RAM、 ROM 、SRAM 、DRAM 、SDRAM 、DDR (2、3、4)SDRAM辨析
乍一看,这么多RAM,ROM是不是感觉大脑发懵,且听我一一道来. 在了解其他概念之前,我们要首先知道,什么是存储器 存储器 存储器是用来存储程序和各种数据信息的记忆部件 许多存储单元的集合,按单元号顺 ...
- SRAM和SDRAM的简单介绍
参考:IS62WV51216ALL数据手册 W9825G6KH数据手册 1.SRAM 静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种.相对 ...
- 嵌入式开发人员,这些SRAM、SDRAM等存储技术,需要了解一下
现在嵌入式处理器中的RAM内存类型主要为SRAM与SDRAM,微型处理器如Cortex-M内核系列MCU的RAM基本上是内置的,以SRAM为主,容量大小基本上为几K至几百K级别:而基于Cortex-A ...
- 国产低成本SRAM芯片EMI504WF16替换IS61WV25616B
虽然很多单片机内部集成SRAM空间,但是在一些需要大数据存储的场合,SRAM仍然不够用,需要外扩SRAM芯片,来扩展处理器的性能. IS61WV25616B芯片的访问时间为8到12ns,典型功耗为85 ...
- 【Paper Reading】MCUNet:物联网设备上的微型深度学习
MCUNet: Tiny Deep Learning on IoT Devices 本文纯翻译,原文见:https://arxiv.org/abs/2007.10319 目录 MCUNet: Tiny ...
- FPGA之道(12)FPGA芯片的配置方式
文章目录 前言 FPGA芯片的配置方法 主动配置模式 被动配置模式 JTAG配置模式 前言 Xilinx公司FPGA芯片的配置方法在调试阶段可以通过JTAG的方式将bit流文件烧写(编程)进FPGA芯 ...
最新文章
- 领域驱动设计(DDD:Domain-Driven Design)
- 链表面试题2:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前
- navicat的字符集和排序规则
- php判断是否为数字_PHP知识点:从'xulei' == 0是否为真谈谈运算符===和==
- 美国喜提刷脸登机,官方开心发通告,竟马上引发公民不适
- python基础教程-学习python有什么好的视频教程?
- 去掉字符串首尾逗号_去除字符串首尾空格和特殊字符
- MVC登陆认证简单设置
- java删除未引用的库_利用Proguard移除无用代码以及碰到的坑
- Java基本sql_SQL基本语句
- 复制字符串中的元音字母
- 万年历(hao123)代码
- 项目知识管理体系指南阅读(2)
- pest分析和swot分析的区别
- linux下使用代理加速下载方案集合
- Bootstrap学习(六)响应式嵌入、well、分页符、label、徽章、巨幕、警告框、进度条
- 线路板入行必读:PCB电路板小常识
- 小红帽系统搭建dns服务器,红帽7(centos 7 )配置DNS服务器
- mobx系列(二)-mobx主要概念
- PCF8951读程序