好的,STM32 微控制器的基本存储单元主要包括以下几类,它们共同构成了 STM32 的内存架构:
-
Flash 存储器 (闪存)
- 作用: 这是 STM32 最主要的非易失性存储器。它主要用于存储:
- 程序代码: 你编写的应用程序代码(固件)。
- 常量数据: 使用
const关键字定义的常量、字符串常量、查找表等。 - 中断向量表: 定义中断服务程序入口地址的表。
- 特性:
- 掉电数据不丢失: 断电后存储的内容依然保留。
- 可擦写: 可以通过编程器(如 ST-Link)或程序自身(IAP应用中)进行擦除和编程。
- 访问速度相对较慢: 比 SRAM 慢,但 STM32 通常有指令预取和缓存机制来加速代码执行。
- 按块/扇区管理: 擦除操作通常以块(Block)或扇区(Sector)为单位进行(例如 1KB, 2KB, 16KB, 64KB, 128KB 等,具体取决于型号),而写入(编程)可以按字(通常是 32 位或 64 位)进行。
- 位置: 在内存映射中占据一个连续的地址空间(例如
0x0800 0000开始)。
- 作用: 这是 STM32 最主要的非易失性存储器。它主要用于存储:
-
SRAM (静态随机存取存储器)
- 作用: 这是 STM32 的易失性主内存。它用于存储:
- 变量: 全局变量、静态变量、局部变量(在栈上分配)。
- 堆: 动态分配的内存(通过
malloc,calloc,free等函数管理)。 - 栈: 用于函数调用时的局部变量、参数传递、返回地址等。
- 运行时数据: 程序执行过程中产生的临时数据。
- 特性:
- 掉电数据丢失: 断电后存储的内容全部消失。
- 高速访问: 访问速度比 Flash 快得多,CPU 可以直接高效读写。
- 按字节/字读写: 可以按字节(8位)、半字(16位)、字(32位)进行读写。
- 容量相对较小: 通常比 Flash 容量小很多(从几 KB 到几百 KB 不等,高端型号有 MB 级别)。
- 位置: 在内存映射中占据一个连续的地址空间(例如
0x2000 0000开始)。一些 STM32 型号可能有多块 SRAM(如 SRAM1, SRAM2)。
- 作用: 这是 STM32 的易失性主内存。它用于存储:
-
寄存器
- 作用: 这是位于 CPU 核心和各个外设(如 GPIO, USART, SPI, TIMER, ADC 等)内部的最基本、最快速的存储单元。它们用于:
- 控制外设: 配置外设的工作模式、使能/禁用、设置参数(如波特率、时钟分频等)。
- 状态指示: 反映外设的当前状态(如数据是否准备好、发送是否完成、是否发生错误等)。
- 数据传输: 作为 CPU 与外设之间交换数据的缓冲区(如 USART 的数据寄存器)。
- CPU 核心控制: 特殊功能寄存器(如程序计数器 PC、堆栈指针 SP、状态寄存器 xPSR)控制 CPU 的运行。
- 特性:
- 位于 CPU/外设内部: 物理上最靠近处理单元。
- 访问速度最快: 读写延迟最低。
- 按位/字节/字访问: 通常可以按位操作(置位/清零)、按字节或字访问。
- 数量有限: 每个寄存器通常只有 32 位(STM32 是 32 位 MCU)或更少。
- 内存映射: 所有外设寄存器都被映射到特定的内存地址上(例如
0x4000 0000到0x5FFF FFFF的外设区域),CPU 通过读写这些地址来访问寄存器,就像读写内存一样(使用指针或 CMSIS 库/外设库提供的结构体访问)。
- 作用: 这是位于 CPU 核心和各个外设(如 GPIO, USART, SPI, TIMER, ADC 等)内部的最基本、最快速的存储单元。它们用于:
-
备份寄存器 (Backup Registers - BKP)
- 作用: 一小块特殊的 非易失性或低功耗保持 的存储区域(通常 20 字节)。主要用于:
- 在主电源 (VDD) 掉电但备份电池 (VBAT) 存在的情况下(例如用于 RTC),保存关键数据(如 RTC 校准值、配置标志、运行计数器等)。
- 系统从待机模式或复位后恢复时,这些数据仍然可用。
- 特性:
- 需要 VBAT 供电保持: 当 VDD 掉电时,如果 VBAT 有效,数据能保留。
- 独立于主电源域: 属于备份域。
- 访问需要特殊使能: 通常需要先使能备份域访问(通过 RCC 和 PWR 相关寄存器)才能读写。
- 位置: 在内存映射中有特定的地址(属于备份域)。
- 作用: 一小块特殊的 非易失性或低功耗保持 的存储区域(通常 20 字节)。主要用于:
总结一下它们的关系和工作流程:
- 上电/复位: CPU 从 Flash 存储器的固定地址(通常是
0x0800 0000,映射到0x0000 0000)读取初始堆栈指针 (SP) 和复位向量(程序入口地址)。 - 程序执行: CPU 从 Flash 中直接读取指令执行(利用预取缓冲和缓存加速)。常量数据也从 Flash 读取。
- 数据处理: 程序运行中产生的变量、堆栈数据、动态分配的内存都存放在 SRAM 中。CPU 高速读写 SRAM。
- 硬件控制: 程序通过读写映射到内存地址的外设寄存器来控制 GPIO 引脚、配置串口、启动定时器、读取 ADC 值等。
- 关键数据保存: 需要掉电保存的少量关键数据可以写入备份寄存器(由 VBAT 供电保持)。
- 程序更新: 新的固件可以通过编程接口写入 Flash 存储器。
理解这些基本存储单元及其特性(易失性/非易失性、速度、容量、用途)对于进行 STM32 的编程(内存管理、链接脚本配置、优化)、调试和系统设计至关重要。
存储单元结构
静态RAM的基本构造块是SRAM存储单元。通过升高字线的电平触发存储单元,再通过位线对所触发的存储单元进行读出或写入。在静态CMOS存储器中,存储单元阵列将会占去整个存储器芯片面积的一半以上,在一些
2020-05-14 09:19:47
主存中存储单元地址的分配
4.2.1.主存中存储单元地址的分配:存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。字(word) : 若干个字节组成一一个”字” ( word)。一
lalajie
2021-07-28 06:43:06
MOS存储单元的工作原理
方式边界对齐的数据存放方法主存的基本结构和工作过程存储系统的层次结构半导体存储器静态MOS存储器 SRAM静态MOS存储单元静态MOS存储器的结构动态MOS存储器 DRAM四管动态MOS存储元的工作原理
lifei639156
2021-07-28 07:59:20
常用存储单元的原理和特点
在芯片设计时,通常需要用到各种类型的存储单元,用以临时或者永久地存储数据。根据应用场合的不同,所用到的存储单元也不同。本文对常见的几个存储单元进行了介绍,并简述了其工作原理和特点。需要特别
2022-12-02 17:36:24
各个存储单元之间的区别
就基本的 SSD 存储单元而言,有 SLC、MLC、TLC 和 QLC。其中,TLC 是最受欢迎的,不过,QLC 最终将取代它们。在 I/O 方面,有 SATA 和 NVMe。
2022-08-26 16:41:35
计算机信息存储单元的结构解析
数据必须首先在计算机内被表示,然后才能被计算机处理。计算机表示数据的部件主要是存储设备;而存储数据的具体单位是存储单元;因此,了解存储单元的结构是十分必要的。
2021-01-08 10:03:55
浅谈闪速存储器和存储单元连接方式
闪速存储器(Flash Memory)又称闪存(Flash),是一种非易失性存储器,用存储单元阈值的高低表示数据。浮栅(Floating Gate )场效应管(见图5-80)是Flash存储单元采用的主要技术。
2022-08-08 15:46:00
根据数据存取的方式不同,ram中的存储单元有几种
按照数据存取的方式不同,ram中的存储单元分为两种:静态存储单元一静态RAM(SRAM);动态存储单元动态RAM(DRAM)。 1.静态存储单元(SRAM):它由电源来维持信息,如触发器,寄存器等
2020-12-02 14:31:30
DRAM上电时存储单元的内容是全0吗
1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分) A.正确B.错误 FLASH可保存 上电后不知道是啥2.(判断题)眼图可以用来分析高速信号的码间
hfgdf
2021-07-22 08:57:49
存储器对全部存储单元刷新遍所需的实际刷新时间是多少
设存储器读/写周期为 0.5us, CPU在1us内至少要访问一次。试问采用哪种刷新方式比较合理? 两次刷新的最大时间间隔是多少? 对全部存储单元刷新遍所需的实际刷新时间是多少?
zhangguangrong
2021-10-26 07:05:19
便携式电子系统中甲乙类存储单元的应用及设计方案
采用HSPICE分别对设计的存储单元、延迟单元和积分器电路进行了仿真,晶体管模型选用TSMC0.18μm标准数字工艺参数。电源电压为±1 V;输入电流iin=40μA,信号频率fin=100 kHz
2021-02-18 10:06:39
如何在不使用DDR内存控制器的情况下设计FPGA BRAM大容量存储单元?
你好如何在不使用DDR内存控制器的情况下设计FPGA BRAM(或任何其他内存模块_SD,DDR以外的本地等)大容量存储单元?当我通过示例设计“VC707_bist”替换DRAM控制器和BRAM
sinoxutong
2019-04-04 15:10:55
SOC内SRAM各存储单元是否是由其硬件电路保证总是一样的
请教Arm专家大侠: SOC内SRAM各存储单元, 其“每次上电冷启动后、还未写入应用数据前的初始状态数据”是否是由其硬件电路保证总是一样的(全0或全1)?不会随机变化(有时为0有时为1)? 能否从硬件原理角度简单说明下? 谢谢。
YYXIAO
2022-08-19 15:37:40
东芝开发新型闪存,半圆形存储单元可进一步提高容量
铠侠株式会社(Kioxia Corporation)宣布开发出创新的储存单元结构“Twin BiCS FLASH”。该结构将传统3D闪存中圆形存储单元的栅电极分割为半圆形来缩小单元尺寸以实现高集成化。
2019-12-24 17:01:22
中国突破技术瓶颈 研制出全球最小尺寸相变存储单元
中国科学院上海微系统与信息技术研究所研究员宋志棠、王浩敏组成联合研究小组,首次利用GNR边缘接触制备了世界上最小的相变存储单元器件。
2022-08-02 14:26:26
垂直环绕栅晶体管可缩小MRAM和RRAM存储单元!
个名为Row Hammer的顽固安全漏洞。 Spin Memory的垂直环绕栅晶体管可以缩小MRAM和RRAM存储单元。 Spin Memory将设备称为通用选择器(Universal
2020-09-04 16:10:13
牛津大学团队研发出新型存储单元,实现芯片级光通信
牛津大学设计了一种新型计算机存储单元,可以同时通过电和光信号对其进行访问或写入,大幅度提升了带宽和功率效率,也进一步推动了芯片级光子学技术的发展。
2020-01-21 08:38:00
SDRAM芯片引脚说明和存储单元
SDRAM英文名是:Synchronous Dynamic Random Access Memory,即同步动态随机存储器,同步指存储器的工作需要参考时钟。
2023-04-04 17:11:32
基于28nm工艺低电压SRAM单元电路设计
在分析传统SRAM存储单元工作原理的基础上,采用VTC蝴蝶曲线,字线电压驱动,位线电压驱动和N曲线方法衡量了其静态噪声容限。 在这种背景下,分析研究了前人提出的多种单元优化方法。这些设计方法,大部分
是酒窝啊
2020-04-01 14:32:04
存储系统基础知识全解:存储协议及关键技术
SSD主要由控制单元和存储单元(当前主要是FLASH闪存颗粒)组成,控制单元包括SSD控制器、主机接口、DRAM等,存储单元主要是NAND FLASH颗粒。
2023-10-27 10:27:03
动态随机存储器集成工艺(DRAM)详解
在当前计算密集的高性能系统中,动态随机存储器(DRAM)和嵌入式动态随机存取存储器(embedded-DRAM,eDRAM)是主要的动态快速读/写存储器。先进的 DRAM 存储单元有两种,即深沟
2023-02-08 10:14:57
Mask ROM存储单元构成
ROM中的资料永远无法做修改。 高度集成化的NAND构成。(1个晶体管单元) 数据的写入方法 在Wafer过程内写入信息 “1”:将离子注入晶体管 “0”:不注入离子 数据的读取方法 使读取单元
2023-07-12 17:35:25