存储器分类
在讲STM32的存储器前,我们首先了解下存储器类别,下面是常见的存储器介绍。
正文开始:
![](http://dingyue.ws.126.net/2022/0429/a85abb1fj00rb3avn000ac000hs0063m.jpg)
RAM
RandomAccessMemory,随机存取存储器。是与CPU直接替换数据的内部存储器。它能够随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
一旦断电所存储的数据将随之丢失。
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得口令一哥///
SRAM
StaticRandom-AccessMemory,静态随机存取存储器。是RAM的一种,所谓的“静态”,是指这种存储器只有保持通电,里面储存的数据就能够恒常保持。
集成度较DRAM低,SRAM一般应用于高速缓存(Level2 Cache)。
DRAM
DynamicRandomAccessMemory,动态随机存取存储器。是RAM的一种,所谓的“动态”,是指这种存储器存储的数据想要保持,就须要周期性地更新里面所储存的数据。
集成度较SRAM高,一般应用于内存条中。
ROM
Read-OnlyMemory,只读存储器。是一种存储固定信息的存储器,在正常工作状态下只能读取数据,不能即时修改或重新写入数据。
ROM的最大优点是具有不易失性。
EEPROM
ElectricallyErasableProgrammableReadOnlyMemory,带电可擦可编程只读存储器。是可更改的只读存储器(ROM),其可通过高于普通电压的作拿来擦除和重写。
常用于寄存硬件设置数据,如PC的BIOS。
OTP
OneTimeProgrammable,一次性可编程存储器。数据写入后,将不可再次更改和革除。
常用于写入产品和安全信息。
FLASH
Flash是一种块擦写型存储器。Flash不像RAM一样须要电源支持才能保存,但又像RAM一样可重写。在某个级别的低电压下,Flash的内部信息可读不可写,类似于ROM,而在较高的电压下,其内部信息能够更改和删除,又类似于RAM。
一.在单片机应用中,一般用作存储程序代码。
二.注意上述这个“块”字,Flash的擦除操作是以block块为单位的,进行操作时须要留意字节和地址等对齐问题。
在讲存储器映射前,先来看下STM32的架构和存储器构成,以下以F407xx系列为例。
系统架构
讲详细映射之前,我们在系统架构中先了解一个概念。从图中可看到主控总线通过一个总线矩阵来连接被控总线。假如数据从SRAM到DMA1外设,那么数据在交给总线矩阵后,总线矩阵就会仲裁给DMA1,其次通过DMA1所在的AHB1传递过去。
![](http://dingyue.ws.126.net/2022/0429/75c8c803j00rb3avn0012c000hs00apm.jpg)
这里我们只要知道,存储器和外设的数据交互是通过总线的即可。
存储器构成
![](http://dingyue.ws.126.net/2022/0429/34bdac6aj00rb3avn001pc000j200ejm.jpg)
存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。如果给存储器再分配一个地址就叫存储器重映射。
![](http://dingyue.ws.126.net/2022/0429/33845e1fj00rb3avn0035c000ix00qem.jpg)
存储器区域功能划分
在这4GB 的地址空间中,ARM 已经粗线条的平均分成了8 个块,每块512MB,每个块也都规定了用途。每个块的大小都有512MB,显然这是非常大的,芯片厂商在每个块的范围内设计各具特色的外设时并不一定都用得完,都是只用了其中的一部分而已。
![](http://dingyue.ws.126.net/2022/0429/3360e33cj00rb3avn0013c000k0006nm.jpg)
在这8 个Block 里面,有3 个块非常重要,也是我们最关怀的三个块。Block0 拿来设计成内部FLASH,Block1 拿来设计成内部RAM,Block2 拿来设计成片上的外设,下面我们简略的介绍下这三个Block 里面的详细区域的功能划分。
存储器Block0 内部区域功能划分
Block0 主要用于设计片内的FLASH,我们运用的STM32F103ZET6(霸道)和STM32F103VET6(指南者)的FLASH 都是512KB,属于大容量。要在芯片内部集成更大的FLASH 或者SRAM 都意味着芯片老本的增加,往往片内集成的FLASH 都不会太大,ST 能在追求性价比的同时做到512KB,实乃良心之举。
![](http://dingyue.ws.126.net/2022/0429/236be222j00rb3avn001fc000k000bdm.jpg)
储存器Block1 内部区域功能划分
Block1 用于设计片内的SRAM 。我们使用的STM32F103ZET6 ( 霸道) 和STM32F103VET6(指南者)的SRAM 都是64KB。
![](http://dingyue.ws.126.net/2022/0429/cbfeb04cj00rb3avn0013c000k4008cm.jpg)
需要学习单片机的朋友 ,做毕业设计的同学,参加竞赛,关注我们,口令一哥,与导师一起学习成长,共同进步,还有更多资料领取。
说了这么多,大家记得留意下方评论第一条(或者私信我)有干货~
-END-
*本文系网络转载,版权归原作者所有,如有侵权请联系删除
热门跟贴