STM32内部flash分区

server/2024/12/18 7:07:00/

STM32的内部Flash根据型号和容量的不同,分区方式可能有所差异,但通常都包含以下几个主要部分:

主存储器:这是内部Flash的主要部分,用于存放程序代码和数据常量。在STM32F4系列中,主存储器被划分为多个扇区,例如STM32F4共有12个主存储器扇区,这12个扇区分为4个16KB、1个64KB以及7个128KB扇区。不同型号的STM32,其Flash容量和扇区大小也会有所不同。例如,STM32F103C8T6的内部Flash容量为64KB,被划分为多个1KB大小的扇区;而STM32F103ZET6的Flash容量则为512KB或1024KB,扇区大小可能为2KB或4KB。
系统存储器:这部分存储器包含出厂时就已经存在的boot代码,用于在系统存储器自举模式下启动设备。它通常用于给主存储器下载代码,例如通过CAN、串口等方式进行代码下载时,就会用到这部分存储器。
OTP(一次性可编程)区域:OTP区域共528字节,被分成两个部分。前面512字节(32字节为1块,分成16块)可以用来存储一些用户数据(一次性的,写完一次后不可擦除)。后面16字节用于锁定对应块,以防止数据被意外修改。
选项字节:选项字节用于配置Flash的读写保护、电源管理中的BOR级别、软件/硬件看门狗等功能。这部分共32字节,可以通过修改Flash的选项控制寄存器来进行配置。
此外,对于某些STM32系列(如STM32F1),其内部Flash还可能包含信息块和闪存存储器接口寄存器等部分。信息块通常包含启动程序代码和选择字节,而闪存存储器接口寄存器则用于控制Flash的读写操作。

在进行Flash读写操作时,通常需要遵循以下步骤:

启用Flash访问:通过设置Flash控制寄存器(FLASH_CR)中的特定位来启用对Flash的访问权限。
解锁Flash:通过向FLASH_KEYR寄存器写入特定值来解锁Flash,以允许对其进行写操作。
检查Flash状态:在进行Flash编程之前,需要检查Flash是否处于忙碌状态。可以通过读取FLASH_SR寄存器中的BSY位来判断。
执行Flash编程:将要写入的数据写入Flash目标地址。写入操作通常是按字进行的,即每次写入4个字节(或根据并行位数不同而有所变化)。
等待Flash操作完成:执行Flash编程后,需要等待编程操作完成。可以通过轮询FLASH_SR寄存器中的BSY位来检查。
锁定Flash:完成Flash编程后,应该锁定Flash以防止意外修改。通过将FLASH_CR寄存器中的LOCK位设置为1来锁定Flash。
需要注意的是,进行Flash编程时需要小心谨慎,因为不正确的操作可能会导致Flash数据的损坏。因此,在编程之前应仔细阅读相关的芯片参考手册,并按照手册中提供的准确步骤和注意事项进行操作。


http://www.ppmy.cn/server/151112.html

相关文章

shell脚本目录下所有文件中关键词替换方法

#!/bin/bash# 定义当前文件夹路径 FOLDER_PATH"." # 当前目录# 旧关键词和新关键词 OLD_KEYWORD"track_wpa_report" NEW_KEYWORD"//track_wpa_report"# 遍历当前目录下的所有文件,并替换关键词 # 使用#作为分隔符,避免斜…

Windos中解决redis-server.exe闪退问题

一、闪退原因 (一)数据状态异常 数据不一致 在 Redis 运行过程中,如果发生意外情况,如突然断电、系统崩溃或者不正确的操作,可能会导致数据在内存中的存储状态不一致。例如,Redis 使用多种数据结构&#x…

数据结构—图

目录 一、图的定义 二、图的基本概念和术语 2.1有向图 2.2无向图 2.3简单图 2.4多重图 2.5完全图 2.6子图 2.7连通、连通图和连通分量 2.8强连通图、强联通分量 2.9生成树,生成森林 2.10顶点的度、入度和出度 2.11边的权和网 2.12稠密图、稀疏图 2.1…

【Ubuntu】截图软件flameshort

sudo apt install flameshort 安装Flameshot截图工具 配置快捷键 进入系统设置settings,找到Keyboard下的Keyboard Shortcuts快捷键设置面板,按步骤进行设置。

在线预约陪诊小程序

一、前言 随着社会老龄化加剧以及人们健康意识的提高,就医过程中的陪伴需求日益增长。许多患者在面对复杂的医院环境、繁琐的就医流程时,需要有人协助挂号、候诊、取药等,而家属可能因工作繁忙无法全程陪同。同时,异地就医的患者更…

Mysql和MariaDB什么关系

MySQL和MariaDB的关系非常密切,可以用“父子”或者“分支”来形容。简单来说,MariaDB是MySQL的一个分支,由MySQL的创始人之一Michael Widenius(也被称为Monty)在2009年创建。 以下是它们之间关系的详细说明&#xff1…

【arm】国民N32G435通用定时器霍尔配置,双边沿输入捕获配置

项目场景: 无刷电机FOC控制,配置通用定时器TIM4为霍尔输入检测。 控制平台,国民N32G435CBL7。 问题描述 端口配置: /* Hall port configuration. */GPIO_InitStructure.Pin GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8…

Maven 统一版本:项目依赖管理的智慧之选

Maven 统一版本:项目依赖管理的智慧之选 在 Java 开发的浩瀚星空中,Maven 犹如一颗璀璨的导航星,引领着我们穿越依赖管理的浩瀚宇宙。而其中的“统一版本”概念,就像是为这趟旅程制定的一份精准地图,让我们的项目之路…