STM32G473之flash存储结构汇总

news2024/9/21 18:57:00

      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里面。

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

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

相关文章

Switch 和 PS1 模拟器:3000+ 游戏随心玩 | 开源日报 No.174

Ryujinx/Ryujinx Stars: 26.1k License: MIT Ryujinx 是用 C# 编写的实验性任天堂 Switch 模拟器。 该项目旨在提供出色的准确性和性能、用户友好的界面以及稳定的构建。它已经通过了大约 4050 个测试,其中超过 4000 个可以启动并进入游戏,其中大约 340…

新版Idea2023.3.5与lombok冲突、@Data失效

新版idea和lombok冲突,加上Data,其他地方get set也不报错,但是一运行就找不到get set方法。 但是直接使用Getter和Setter可以访问、应该是Data失效了。 解决方法: 看推上介绍是 lombok 与 idea 采集 get 、set 方法的时候所用的技…

yolov8逐步分解(1)--默认参数超参配置文件加载

本章节将介绍yolov8算法训练过程中的第一步:加载默认训练参数以及超参的配置文件default.yaml。 Yolov8 训练的入口文件为train.py,文件结构如下图所示: 1. 执行train函数,函数默认配置参数为cfgDEFAULT_CFG &#xff0c…

samba实现linux共享文件夹

一、samba安装 sudo apt install samba 二、配置Samba 编辑Samba配置文件sudo vi /etc/samba/smb.conf 在文件末尾添加以下内容,设置一个简单的共享目录(替换path_to_share为实际的共享目录路径): [Share] path /path_to_sha…

【LeetCode热题100】124.二叉树的最大路径和(二叉树)

一.题目要求 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root …

DDos系列攻击原理与防御原理

七层防御体系 静态过滤 命中黑名单 对确定是攻击的流量直接加入黑名单(源地址命中黑名单直接丢弃,缺乏机动性和扩展性) 畸形报文过滤 畸形报文攻击 TCP包含多个标记位,排列组合有规律 • 现象:TCP标记位全为1 …

day72Html

常用标签: 分类: 块级标签:独立成行 行级标签:不独立成行,同一行可放多个行级标 注意网页显示时,忽略空白字符,(回车符,空格,tab制表符) 一)块级标签&#xf…

[数据结构]插入和希尔排序

一、插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排…

基于SpringBoot和Vue的在线视频教育平台的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的在线视频教育平台的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕&…

Win10 搭建FTP存储服务器站点【超详细教程】

目录 第一步:打开控制面板>程序 第二步:win10左下角搜索IIS并打开 第三步:右键网站,选择添加FTP站点 第四步:添加FTP站点名称 第五步:添加IP地址和端口 第六步:身份验证与授权信息 第…

cleanmymac有必要买吗?cleanmymac免费使用

在使用mac时,小编遇到了运行内存不足、硬盘空间不足的情况。遇到这种情况,我们可以借助经典的电脑深度清理软件——CleanMyMac X,清理不常用的软件和系统垃圾,非常好用!不过,有许多网友发现CleanMyMac X有免…

Ubuntu下使用vscode进行C/C++开发:进阶篇

在vscode上进行C/C++开发的进阶需求: 1) 编写及调试源码时,可进行断点调试、可跨文件及文件夹进行函数调用。 2) 可生成库及自动提取对应的头文件和库文件。 3) 可基于当前工程资源一键点击验证所提取的库文件的正确性。 4) 可结合find_package实现方便的调用。 对于第一…

最小可行产品需要最小可行架构——可持续架构(三)

前言 最小可行产品(MVP)的概念可以帮助团队专注于尽快交付他们认为对客户最有价值的东西,以便在投入大量时间和资源之前迅速、廉价地评估产品的市场规模。MVP不仅需要考虑产品的市场可行性,还需要考虑其技术可行性,以…

腾讯云4核8g服务器多少钱?2024轻量和CVM收费价格表

2024年腾讯云4核8G服务器租用优惠价格:轻量应用服务器4核8G12M带宽646元15个月,CVM云服务器S5实例优惠价格1437.24元买一年送3个月,腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图: 腾讯云4核8G服务器优惠价格 轻…

C语言 C6031:返回值被忽略:“scanf“ 问题解决

我们在代码中 直接使用 scanf 就会出现这个错误 在最上面 加上 #define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告 #pragma warning(disable:6031)//禁用 6031 的安全警告即可正常运行

安全的内网通讯软件,WorkPlus定制化 IM/办公门户解决方案

如今处于数字化转型的“加速期”,政企正经历着一场数字化迭代升级的时代浪潮。而不少企业都已具备了数字化管理的意识,数字化应用场景也在全面推开。WorkPlus不断推动信息技术与企业业务深度融合,作为安全的内网通讯软件,为企业提…

Ubuntu18.04 下Ublox F9P 实现RTK (利用CORS服务无需自建基站)

本内容参考如下连接:Ubuntu下Ublox F9P利用CORS服务无需自建基站实现RTK-CSDN博客 一、Ublox F9P 硬件模块示意图 图中展示了Ublox F9P的接口,包括串口2(`UART1`和`UART2`),USB1。需要人为通过u-center(Ublox F9P的显示软件)软件设置以下功能: Ublox通过`UART1`向PC端发送…

目标检测的相关模型图:YOLO系列和RCNN系列

目标检测的相关模型图:YOLO系列和RCNN系列 前言YOLO系列的图展示YOLOpassthroughYOLO2YOLO3YOLO4YOLO5 RCNN系列的图展示有关目标检测发展的 前言 最近好像大家也都在写毕业论文,前段时间跟朋友聊天,突然想起自己之前写画了一些关于YOLO、Fa…

Golang实战:深入hash/crc64标准库的应用与技巧

Golang实战:深入hash/crc64标准库的应用与技巧 引言hash/crc64简介基本原理核心功能 环境准备安装Golang创建一个新的Golang项目引入hash/crc64包测试环境配置 hash/crc64的基本使用计算字符串的CRC64校验和计算文件的CRC64校验和 高级技巧与应用数据流和分块处理网…

【Ubuntu】Ubuntu LTS 稳定版更新策略

1、确保下载环境 sudo apt update && sudo apt upgrade -y sudo apt autoremove 2、安装更新管理器 sudo apt install update-manager-core -y 3、设置只更新稳定版 sudo vim /etc/update-manager/release-upgrades 4、开始更新,耐心等待 sudo do-re…