打印
[应用相关]

STM32存储器映像

[复制链接]
195|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2025-4-10 13:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1 存储器介绍
本文介绍STM32各存储器以及其所占地址区域,以及看懂RAM和ROM的区别;



由上一篇文章DMA直接存储器(DMA直接存储器-CSDN博客)的内容可知,DMA的作用是在存储器之间进行数据转运的,那我们就应该了解下STM32中都有哪些存储器,这些存储器又都是被安排在哪些地址上。

计算机组成的5大部分:运算器、控制器、存储器、输入设备和输出设备,其中运算器和控制器,一般会合在一起叫CPU,所以计算机的核心部件就是CPU和存储器,存储器有两个重要知识点,一个是存储器内容,一个是存储器地址。

由表可知存储器被分为两大类:

        ROM(Read Only Memory)只读存储器。ROM是一种非易失性,掉电不丢失的存储器。ROM又分为三块;(1)程序存储器FLASH主闪存,是我们下载程序的位置,运行程序一般是从主闪存里开始运行的。(2)系统存储器和选项字节位于ROM地址的末尾,实际上他们的存储介质也是Flash,系统存储器主要用来存储BootLoader,BootLoader程序是芯片出厂自动写入的,一般不允许我们修改。(3)选项字节用来存储一些独立于程序代码的配置参数,主要存的是FLASH的读保护和写保护,还有看门狗等配置。

        RAM(Random Access Memory)随机存储器。RAM是易失性,掉电丢失的存储器。(1)运行内存SRAM,存储运行过程中的临时变量例如:定义变量,数组,结构体,类比于电脑的话就是内存条。(2)外设寄存器,存储各个外设的配置参数,也就是我们初始化各个外设,最终所读写的东西。外设寄存器的存储介质也是SRAM,只是我们习惯将运行内存叫SRAM,外设寄存器叫寄存器。寄存器是特殊的存储器,寄存器背后会连接许多跟根导线,用来控制外设电路的状态,CPU通过控制寄存器进行读写,进而控制外设硬件电路。(3)内核外设寄存器,就是内核的外设NVIC,SysTick,因为内核外设和其他外设不是一个厂家设计的,所以地址也被分开。

了解完存储器再来看这个系统结构就会清晰许多,左上角是系统内核,右边的一大部分可以将其看成存储器,所以总共就是CPU和存储器两大部分



2 例子
程序1:



现象:第一行变量的值,第二行变量的地址



程序2:若将定义变量前加 const 关键字,变量aa就变为只读不可更改,此时aa就被存储在ROM只读存储器中Flash里。



现象:第二行地址更改位08开头。



由此可知const关键字的使用场景是用于定义一批大量且不可更改的数据,从而节省SRAM空间,例如:oled字模显示的数组字库。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/xiaobugl/article/details/147006618

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2201

主题

16568

帖子

17

粉丝