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

嵌入式单片机开发 - 嵌入式系统中 Flash(闪存)与 RAM(随机存储器)

概述

  • 在嵌入式系统中,Flash 和 RAM 就像的 “长期记忆的硬盘 和 “临时便签”,分工明确

一、Flash(闪存)

1、基本介绍
  1. Flash 用于存储程序代码、常量数据

  2. Flash 在系统配置等断电后不丢失的内容

2、特点
  1. 速度较慢:读取速度比 RAM 慢,写入速度更慢

  2. 寿命有限:Flash 有擦写次数限制(通常 10 万次左右

  3. 非易失性:在系统配置等断电后不丢失的内容

3、使用场景
  1. 存储固件程序,例如,单片机一上电就从 Flash 读取代码执行

  2. 保存用户设置,例如,Wi-Fi 密码、校准参数等


二、RAM(随机存储器)

1、基本介绍
  1. RAM 用于存放程序运行时的临时数据

  2. RAM 在断电后数据丢失

2、特点
  1. 速度快:CPU 可直接高速读写

  2. 可随机访问:能直接修改任意地址的数据

  3. 易失性:断电后数据丢失

3、使用场景
  1. 存储函数内的局部变量,例如,int temp = 10;

  2. 动态内存分配,例如,使用 malloc() 申请的堆空间

  3. 实时数据缓存,如传感器采集的临时数据


三、运行流程

  1. 单片机运行程序,上电启动:CPU 从 Flash 中读取程序代码,开始执行,类比,打开电脑时从硬盘加载操作系统

  2. 运行程序,全局变量、常量存在 Flash 中,函数内的局部变量、计算中间值存在 RAM 中

如果调用了 printf("Hello");字符串 "Hello" 存在 Flashprintf 的栈帧存在 RAM 中
  1. 断电重启:RAM 中的数据丢失,Flash 中的程序依然完好
http://www.xdnf.cn/news/27019.html

相关文章:

  • 《JVM考古现场(二十三):归零者·重启奇点的终极奥义》
  • 【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识
  • JVM 系列:JVM 内存结构深度解析
  • 基础数学知识-线性代数
  • 蓝桥杯之递归二
  • 洛谷题目:P8624 [蓝桥杯 2015 省 AB] 垒骰子 题解 (本题简)
  • 纯FPGA实现AD9361控制的思路和实现 UART实现AXI_MASTER
  • 实现Azure Synapse Analytics安全地请求企业内部API返回数据
  • @EnableAsync+@Async源码学习笔记之二
  • @EnableAsync+@Async源码学习笔记之三
  • 系统思考:危机中的转型机遇
  • STM32单片机入门学习——第43节: [12-3] 读写备份寄存器实时时钟
  • STM32 外部中断EXTI
  • 爬虫入门与requests库的使用——python爬虫
  • XCVU13P-2FHGA2104I Xilinx Virtex UltraScale+ FPGA
  • 额外篇 非递归之美:归并排序与快速排序的创新实现
  • 解决 IntelliJ IDEA 项目启动时端口冲突问题
  • Linux网络编程——基于ET模式下的Reactor
  • 使用 Vite 快速搭建现代化 React 开发环境
  • 考公:数字推理
  • 新能源汽车动力电池热管理方案全解析:开启电车续航与安全的密码
  • 『Linux_网络』 第二章 UDP_Socket编程
  • 可发1区的超级创新思路(python 、MATLAB实现):基于多尺度注意力TCN-KAN与小波变换的时间序列预测模型
  • webpack 中 chunks详解
  • MATLAB 控制系统设计与仿真 - 38
  • C++问题,忘记为类添加拷贝构造函数和赋值运算符重载
  • 动态规划算法的欢乐密码(一):斐波那契数模型
  • QT采用cmake编译时文件解析
  • 基于大语言模型的自动化单元测试生成系统及测试套件评估方法
  • 在Windows创建虚拟环境如何在pycharm中配置使用