当前位置: 首页 > news >正文

MCU的闪存(FLASH)按机制结构划分区域

好的,你问的是MCU 内部 Flash(闪存)按功能结构划分,这个问题其实涉及到 Flash 在 MCU 中的物理布局与功能分区,不同厂商(STM32、NXP、TI、Microchip 等)的划分思路相似,但命名可能略有不同。


一、按作用结构划分

MCU 内部的 Flash 存储器一般按功能划分为以下几个核心部分:

1. 主存储区(Main Flash Memory / Code Area)


2. 系统存储区(System Memory / Boot ROM)

  • 作用:存放厂家固化的 Bootloader(系统启动程序)和硬件驱动函数(如 USB DFU、UART ISP、I2C/SPI 编程等)。
  • 特点
    • 用户无法修改(出厂已固化)
    • 启动时可通过 Boot 引脚或选项字节选择从此区域启动
    • 通常容量较小(几 KB ~ 几十 KB)
  • 常见名称
    • STM32:System memory
    • NXP:ROM / Boot ROM
    • TI:System ROM

3. 选项字节区(Option Bytes / Configuration Area)

  • 作用:存储 MCU 的调整参数,影响启动行为、安全保护、电源管理等。
  • 特点
    • 位置通常在 Flash 最高地址区或单独的配置扇区
    • 写/擦除需特殊解锁流程
    • 修改后一般需要复位才能生效
  • 常见内容
    • 启动模式选择(Flash / SRAM / System Memory)
    • 读保护等级(RDP)
    • 写保护(WRP)
    • BOR(Brown-Out Reset)等级
    • 硬件看门狗调整
  • 常见名称
    • STM32:Option Bytes
    • NXP:FTFA (Flash Configuration Field)
    • Microchip:Configuration Words

4. 数据存储区(Data Flash / EEPROM Emulation Area)

  • 作用:用于存储用户数据,相当于片内 EEPROM(部分 MCU 没有独立 EEPROM,需用 Flash 模拟)。
  • 特点
    • 按页/扇区擦写
    • 擦写寿命低于真正的 EEPROM(1万~10万次)
    • 可借助软件算法构建资料更新(如“页交换”)
  • 常见名称
    • STM32:无专用 Data Flash,需在主 Flash 中划分
    • NXP:FlexMemory / Data Flash
    • Renesas:Data Flash

5. 其他特殊功能区

  • 信息块(Information Block):存放芯片序列号、校准数据(如 ADC 校准值)等
  • 安全区(Secure Flash):部分带安全功能的 MCU 用于存放加密密钥、安全代码
  • OTA 升级区(Dual Bank):部分 MCU 将主 Flash 分成两个 Bank,支持一边运行一边更新固件

二、功能结构示意图(通用型)

┌───────────────────────────────────────┐
│           Main Flash Memory           │  用户代码区(可分区为 Bank1 / Bank2)
│  (Code, const data, lookup tables...) │
├───────────────────────────────────────┤
│       Data Flash / EEPROM Area        │  数据存储区(可模拟EEPROM)
├───────────────────────────────────────┤
│       System Memory (Boot ROM)        │  出厂Bootloader
├───────────────────────────────────────┤
│        Option Bytes / Config Area     │  启动配置、保护等级等
└───────────────────────────────────────┘

三、访问与控制方式

  • 代码执行:从主存储区或系统存储区直接取指执行
  • 数据读取:CPU 数据总线访问(哈佛架构 MCU 有 I-Code 和 D-Code 总线)
  • 编程/擦除:通过 Flash 控制器寄存器(如 FLASH_CR, FLASH_SR)控制
  • 保护机制:通过选项字节设置读/写保护、安全等级

四、总结对比

功能分区主要作用是否可写(用户)容量典型位置
主存储区用户代码、常量可(需解锁)最大低地址区
系统存储区出厂Bootloader固定地址
选项字节区配置与保护可(特殊流程)极小高地址区
数据存储区/EEPROM用户数据存储可(需解锁)小~中主Flash末尾或独立
信息块/安全区序列号、密钥、校准数据否/限写极小固定地址
http://www.zskr.cn/news/13350.html

相关文章:

  • 题解:CF1930I Counting Is Fun
  • K8S-Service 学习
  • 第05周 预习、实验与作业:继承与多态
  • 深入解析:ShardingSphere 与分库分表:分布式数据库中间件实战指南
  • electron38-admin桌面端后台|Electron38+Vue3+ElementPlus管理系统
  • 长江中游干流河道崩岸特征与机理研究综述
  • 基于 Python Keras 建立 猫狗图像的精准分类
  • 《ESP32-S3使用指南—IDF版 V1.6》第四十章 图片显示实验
  • 完整的GLFW应用程序示例
  • HTML5-和-CSS3-迁移即时入门-全-
  • HTML5-地理位置即时操作指南-全-
  • [Kernel] - Heterogeneous Memory Management (HMM)
  • linux防火墙firewalld
  • 【环境武装】认识你的战友 —— 经典而稳定的 PowerShell ISE
  • 详细介绍:基于FPGA的HDB3编解码(verilog语言)
  • Java作业动手又动脑
  • MetaGPT实战指南:构建模拟公司运营的多智能体系统 - 教程
  • 基于51单片机宠物喂食系统设计 - 指南
  • [Luogu 13345] EGOI 2025:IMO
  • 详细介绍:flutter 编译报错java.util.zip.ZipException: zip END header not found
  • 又一通信芯片厂商完成数亿元融资!
  • 做题总结
  • 【前言】从重复劳动的奴隶到自动化大师
  • VS2022激活秘钥
  • grammar(?
  • 9.28作业
  • 2025.9.28+7[未完]
  • 常见NAS文件传输协议中SMB、FTP、NFS、 rsync、WebDAV服务各有何区别?
  • 在Java中原码反码补码的区别
  • US$49 BMW F Series Coding Authorization for CGDI Prog BMW MSV80 Key Programmer