关于MCU-Cortex M7的存储结构(flash与SRAM)

MCU并没有DDR,所以他把代码存储在flash上,临时变量和栈运行在SRAM上。之所以这么做是因为MCU的CPU频率很低,一般低于500MHZ,flash的读取速度能够满足CPU的取指需求,但flash 的写入速度很慢,所以引入了SRAM 作为临时变量和栈的运行空间。

  • 关于flash的存储结构

STM32H753的内部flash分配如下图所示:

在编译前,通过链接脚本确定编译时的内存分配。

哪些放到flash,哪些放到RAM,都是通过连接脚本定好的静态内存管理策略,之后通过编译器编译,就刚好把内容编译到对应的地址。

flash起始地址0x08000000

中断向量表放置在flash的起始地址,privileged functions 特权模式下执行的指令

.isr_vector section的目的是把中断向量表放在 0x08000000 这个特定的内存位置,确保中断向量表占用的内存空间大小是 0x298 字节,将所有包含中断向量表的目标文件(*(.isr_vector))链接到这个 section。如下图编译后的map文件:

 *(.text section*)中定义的是中断服务的应用代码,如下图编译后的map文件:

flash地址0x08008000存操作系统代码

FreeRTOS系统调用被放置在起始地址0x08008000的flash地址,也就接着特权指令后的地址

如下图编译后的map文件:

FreeRTOS 通过.ld文件链接脚本(Linker Script)文件实现的,实现了内存映射,定义目标中不同类型的内存区域,如 Flash、RAM、外设,指定每个内存区域的起始地址和大小。以及实现MPU内存保护。不同芯片文件不一样,TC397用的vLinkGen.lsl文件实现。

flash地址0x08009000存放代码,常量,和一部分想要保存的数据

flash的链接脚本确定编译时静态内存分配

  • 关于MCU的内存分配结构

对于MCU来说,栈区和bss段和data段一般是放在MCU的SRAM区,这些数据下电后不用保存

下面这些都是从RAM里获取的

下面都是从flash里获取的

关于MCU的寄存器地址

寄存器用于暂存CPU内部的数据和状态。
SRAM用于存储程序运行时的临时数据。
FLASH用于存储程序代码和持久性配置数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1474715.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

VSCode神仙插件——CodeSnap (好看的代码截图)

1 安装 2 使用 选中要截图的代码,右键 此时右侧会出现代码截图的预览图 如果要将截图保存到本地,则点击上图红色框中的图标 也可以点击下面截的图,CtrlC复制,然后就可以CtrlV粘贴到其他应用程序里了

SpringBoot运维篇

工程打包与运行 windows系统 直接使用maven对项目进行打包 jar支持命令行启动需要依赖maven插件支持&#xff0c;打包时须确认是否具有SpringBoot对应的maven插件 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><ar…

一篇就够了,为你答疑解惑:锂电池一阶模型-在线参数辨识(附代码)

锂电池一阶模型-在线参数辨识 背景在线 VS 离线 参数辨识递推最小二乘法一阶戴维南Z域离散表达式 背景 锂电池一阶戴维南等效模型的基础知识和离线辨识方法&#xff0c;已经在上一期非常详细地讲解了一轮&#xff08;上期文章请戳此处&#xff09;&#xff0c;本期继续讲解一下…

《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》

《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》 活动地址&#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名&#xff1a;Sam9029 计算机视觉-图像分类&#xff0c;很感兴趣 且今日精神颇佳&#xff0c;一个字&#xff0c;学啊 上一节&…

C++笔试强训1

文章目录 一、单项选择题二、编程题1. 组队竞赛1. 删除公共字符 一、单项选择题 解析&#xff1a; for(初始化部分;条件判断部分;调整部分) { //循环部分 } 本题中条件判断部分是(y 123) && (x < 4)&#xff0c;中间用&&相连&#xff0c;左右都为真时才为真…

STM32实战项目:从零打造GPS蓝牙自行车码表,掌握传感器、蓝牙、Flash存储等核心技术

一、 引言 骑行&#xff0c;作为一项绿色健康的运动方式&#xff0c;越来越受到人们的喜爱。而记录骑行数据&#xff0c;分析速度、里程等信息&#xff0c;则成为了许多骑行爱好者的追求。本篇文章将带你使用STM32单片机&#xff0c;DIY一款功能完备的自行车码表&#xff0c;记…

GRPC使用之ProtoBuf

1. 入门指导 1. 基本定义 Protocol Buffers提供一种跨语言的结构化数据的序列化能力&#xff0c;类似于JSON&#xff0c;不过更小、更快&#xff0c;除此以外它还能用用接口定义(IDL interface define language)&#xff0c;通protoc编译Protocol Buffer定义文件&#xff0c;…

vue学习笔记之组件传值

说起组件传值&#xff0c;首先要介绍再vue中什么是组件。 组件&#xff08;Component&#xff09;&#xff0c;是vue中很强大的一个功能&#xff0c;可以将一些可重用的代码进行重用。所有的vue组件同时也是vue实例&#xff0c;可以接受使用相同的选项对象和提供相同的生命周期…

高考志愿填报千万要注意这四点

在高考志愿填报过程中&#xff0c;确实有很多需要留心的点。我为你总结了四个关键点&#xff0c;希望能帮助你顺利完成志愿填报&#xff1a; 1、学校提供的支持 学校作为学生志愿填报咨询服务的主阵地&#xff0c;应提供体系化和制度化的支持。包括及时关注并传达政策动向和相…

Spring AOP源码篇三之 xml配置

简单代码示例, 了解Spring AOP基于xml的基本用法 xml配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-insta…

数学系C++ 排序算法简述(八)

目录 排序 选择排序 O(n2) 不稳定&#xff1a;48429 归并排序 O(n log n) 稳定 插入排序 O(n2) 堆排序 O(n log n) 希尔排序 O(n log2 n) 图书馆排序 O(n log n) 冒泡排序 O(n2) 优化&#xff1a; 基数排序 O(n k) 快速排序 O(n log n)【分治】 不稳定 桶排序 O(n…

Linux—网络设置

目录 一、ifconfig——查看网络配置 1、查看网络接口信息 1.1、查看所有网络接口 1.2、查看具体的网络接口 2、修改网络配置 3、添加网络接口 4、禁用/激活网卡 二、hostname——查看主机名称 1、查看主机名称 2、临时修改主机名称 3、永久修改主机名称 4、查看本…

Polkadot(DOT)即将爆雷?治理无能还歧视亚洲!资金将在两年内耗尽!是下一个FTX吗?

近期&#xff0c;关于Polkadot(DOT)生态圈的一系列负面消息引发了业界和投资者的广泛关注。从高昂的营销开支、缺乏实际业务亮点&#xff0c;再到治理问题和种族歧视指控&#xff0c;Polkadot似乎正面临着严峻的危机。业内人士警告&#xff0c;Polkadot的财政状况堪忧&#xff…

一个最简单的comsol斜坡稳定性分析例子——详细步骤

一个最简单的comsol斜坡稳定性分析例子——详细步骤 标准模型例子—详细步骤 线弹性模型下的地应力平衡预应力与预应变、土壤塑性和安全系数求解的辅助扫描

Vue2前端实现数据可视化大屏全局自适应 Vue实现所有页面自适应 Vue实现自适应所有屏幕

Vue自适应所有屏幕大小,目前页面自适应,尤其是数据可视化大屏的自适应更是案例很多 今天就记录一下使用Vue全局自适应各种屏幕大小的功能 在Vue.js中创建一个数据大屏,并使其能够自适应不同屏幕大小,通常涉及到布局的响应式设计、CSS媒体查询、以及利用Vue的事件系统来处理…

非同步升压转换器,效率95%你信吗?ETA1611输出电流2A, 22V DCDC

前言&#xff1a; 截止24年7月7日某创报价&#xff1a;500&#xff1a; &#xffe5;0.7856 / 个 建议使用前同时了解下方器件。 2毛钱的SOT23-5封装28V、1.5A、1.2MHz DCDC转换器用于LCD偏置电源和白光LED驱动等MT3540升压芯片 描述 ETA1611 SOT23-6封装 丝印GVYW&#xff0…

对话大模型Prompt是否需要礼貌点?

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 基于Dify的QA数据集构建&#xff08;附代码&#xff09;Qwen-2-7B和GLM-4-9B&#x…

YOLOv8结合SAHI推理图像和视频

文章目录 前言视频效果必要环境一、完整代码二、运行方法1、 推理图像2、 推理视频 总结 前言 在上一篇文章中&#xff0c;我们深入探讨了如何通过结合YOLOv8和SAHI来增强小目标检测效果 &#xff0c;并计算了相关评估指标&#xff0c;虽然我们也展示了可视化功能&#xff0c;…

入门PHP就来我这(高级)13 ~ 图书添加功能

有胆量你就来跟着路老师卷起来&#xff01; -- 纯干货&#xff0c;技术知识分享 路老师给大家分享PHP语言的知识了&#xff0c;旨在想让大家入门PHP&#xff0c;并深入了解PHP语言。 今天给大家接着上篇文章编写图书添加功能。 1 添加页面 创建add.html页面样式&#xff0c;废…

去O化神器 Exbase

随着去O化进程推动&#xff0c;很多旧业务依赖的oracle数据库&#xff0c;都需要实现做数据库的替换&#xff0c;当下能很好兼容Oracle&#xff0c;并实现异构数据库之间转换的工具并不多。这里给大家推荐一个商业工具数据库迁移工具exbase&#xff08;北京海量&#xff09;&am…