STM32G473之flash存储结构汇总

STM32G4系列单片机,为32位的微控制器,理论上其内部寄存器地址最多支持4GB的命名及查找(2的32次方,地址命名为0x00000000至0xFFFFFFFF)。STM32官方对4GB的地址存储进行编号时,又分割成了8个block区域,每个block为512kb的空间,这就是block的概念。如下图block0-7的划分。

一、 Block的概念:

block0 为作为代码区,存默认的向量表,用于存放下载的代码。系统上电后,将从该部分读取代码;
block1 作为SRAM区,用于存放运行代码。系统上电后,将从Flash读取代码,放到SRAM里,CPU再从SRAM读取代码运行;
block2 作为片上外设区,用于存放厂商外设寄存器。如USART,I2C等,要操作外设,即修改这里对应的外设寄存器;

针对block0的空间区域,stm32官方根据功能用途划分出了主存储区(Main memory) 和信息块(information block)两部分。主存储器区域用于存储用户应用程序,也可以保存一些断电需要保存的数据。这个区域也就是我们常说的flash区域。信息块用于存放一些芯片的出厂信息等,一般用不到。

二、 Bank的概念:

根据STM32官方手册,其blcok0的空间512kb区域,又可以分为2个bank区的工作模式和1个bank区的工作模式,这就是bank的来历,两种工作模式读写的宽度不一样。系统可以设置DBANK位来进行工作模式的切换。默认情况下,系统工作在双bank的模式,存储空间被划分为bank1和bank2,每个bank256kb的空间大小。

三、 Page的概念:

STM32对bank的空间再进行细分,又引入了page的概念,每个page大小为2k个字节大小。为什么要引入page的概念呢?这就涉及到flash的原理,flash存储最小的擦除单位就是页,因此在stm32系统里,针对flash的擦除方式分为页擦除(Page Erase)和Mass擦除(Mass Erase)。其中页擦除是最常用的擦除方式,适用于擦除一个页的内容。页擦除操作会将页内的所有字节清零。而mass擦除是一种擦除整个Flash存储器内容的操作,一般少用。

四、 Flash和Eeprom区别:

Flash和Eeprom是两种不同掉电存储技术,它们在读取、写入、擦除方式等方面都有所区别。

写入方式:Flash通常需要page进行写入,而EEPROM可以按字节进行写入。

擦除方式:Flash一般需要按块进行擦除,而EEPROM可以按字节进行擦除。
寿命:Flash和EEPROM的寿命取决于使用方式和应用场景。一般来说,EEPROM可以进行单独的字节单位的写入和擦除,而Flash需要进行整个页面或扇区的擦除,因此EEPROM的寿命可能会更长。

对于stm32而言,其内部只有flash,没有EEPROM。这是其一个缺点,导致我们存储一些掉电数据时,是通过将数据保存在main memory区域,而这个区域又保存了我们程序代码,因此我们在进行掉电保存时,必须要小心,并计算好程序代码占用的空间,把掉电要保存的数据存储在离程序代码远的一些page里面。

相关推荐
炸膛坦客9 小时前
单片机开发工具篇:(九)MCU 芯片包的安装
单片机·嵌入式硬件
智者知已应修善业14 小时前
【51单片机实现初始化数码管不显示按启动从0秒计时到60按暂停一次显示当前秒按2次恢复原始状态】2024-6-11
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
电气_空空16 小时前
基于LabVIEW的数据采集系统设计与实现
单片机·嵌入式硬件·labview
caimouse16 小时前
ReactOS BootCD 光盘布局完整深度分析
单片机·reactos
zlinear数据采集卡17 小时前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
三品吉他手会点灯18 小时前
嵌入式机器学习 - 学习笔记1.2.3 - 机器学习软件框架
人工智能·笔记·嵌入式硬件·学习·机器学习
国科安芯19 小时前
ASC8T245S 8通道电平转换设计实战:从系统架构到QFN24 Layout再到量产测试
网络·单片机·物联网·安全·fpga开发·系统架构
云栖梦泽19 小时前
将RAW打包成MIPI CSI2
linux·人工智能·嵌入式硬件
伟大的前程20 小时前
us级开定时器中断,单片机的开销大,改用轮询的方式
单片机·嵌入式硬件
ACP广源盛139246256731 天前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件