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

STM32的存储结构

STM32F103 芯片是基于 ARM Cortex-M3 内核的微控制器,它集成了多种类型的存储器,每种存储器都有其特定的作用和存储对象。以下是关于 STM32F103 中 Flash、ROM 和 SRAM 的详细介绍:

1. Flash Memory (闪存)

  • 作用:Flash 是非易失性存储器(Non-volatile Memory),即使在断电后也能保持数据。

  • 存储对象

    • 程序代码:Flash 主要用于存放用户编写的固件或应用程序代码。当 MCU 上电时,从 Flash 加载并执行这些代码。
    • 常量数据:如字符串表、查找表等不会更改的数据也可以存储在这里。
    • 配置参数:某些需要长期保存但又不经常改变的数据,比如校准值、用户设置等,可以存储在 Flash 中。
  • 特性

    • 支持读取、编程(写入)和擦除操作。
    • 编程和擦除速度相对较慢,且有一定的寿命限制(擦写次数有限)。
    • 典型容量范围为 16KB 到 512KB(具体取决于型号)。

2. ROM (只读存储器)

  • 作用:ROM 也是一种非易失性存储器,但在 STM32F103 系列中通常指的是内部预编程的存储区域,即包含芯片厂商提供的库函数或其他固定功能。

  • 存储对象

    • 启动代码:一些基本的启动引导代码可能已经固化在 ROM 中。
    • 标准外设库:部分器件可能带有内置的标准外设驱动库,帮助开发者快速上手开发工作。
  • 特性

    • 不可改写,内容由制造商在出厂前烧录好。
    • 由于现代大多数 STM32F103 型号不再配备独立的 ROM 区域,而是完全依赖于用户可编程的 Flash 来实现类似的功能,因此这里的描述适用于早期或者特定版本的 STM32F103。

3. SRAM (静态随机存取存储器)

  • 作用:SRAM 是易失性存储器(Volatile Memory),仅在供电期间保留数据。它是 CPU 进行高速数据交换的地方。

  • 存储对象

    • 变量:全局变量、局部变量、堆栈指针等运行时动态生成的数据都存储在 SRAM 中。
    • 缓冲区:用于临时存储待处理的数据块,例如通信协议中的接收/发送缓冲区。
    • :如果启用了动态内存分配,则用于管理动态分配的内存块。
  • 特性

    • 高速访问,适合频繁读写操作。
    • 断电后数据丢失,因此不适合长期存储。
    • 典型容量范围为 6KB 到 64KB(具体取决于型号)。

总结

  • Flash 用于存放程序代码和持久化的数据。
  • ROM 在 STM32F103 上可能不存在作为独立的存储单元,但如果存在的话,它用来存放固定的启动代码或库函数。
  • SRAM 提供快速的数据访问空间,用于存储运行时的变量、堆栈和其他临时数据。

http://www.kler.cn/a/488776.html

相关文章:

  • Vue 环境配置与项目创建指南
  • 机器学习基础-概率图模型
  • 【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜
  • P10424 [蓝桥杯 2024 省 B] 好数
  • Flutter:封装一个自用的bottom_picker选择器
  • ChatGPT网络错误如何解决
  • abap安装cl_json类
  • 玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
  • Flutter项目开发模版,开箱即用(Plus版本)
  • k8s dashboard离线部署步骤
  • windows中,git bash 使用conda命令
  • ISP流程--去马赛克详解
  • ETL的工作原理
  • 【算法】图解排序算法之归并排序、快速排序、堆排序
  • 基于Linux环境的进度条实现
  • 通过idea创建一个springboot 并执行案例
  • Linux (CentOS) 安装 Docker 和 Docker Compose
  • taro转H5端踩坑
  • 【联合物种分布模型】HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用
  • 计算机网络之---局域网
  • 如何在 Ubuntu 22.04 上使用 LEMP 安装 WordPress 教程
  • 关于大数据的基础知识(一)——定义特征结构要素
  • 第二次mysql作业
  • mongodb清理删除历史数据
  • Ubuntu问题 -- 硬盘存储不够了, 如何挂载一个新的硬盘上去, 图文简单明了, 已操作成功
  • springboot整合admin