概述

  • 在嵌入式系统中,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" 存在 Flash

printf 的栈帧存在 RAM 中
  1. 断电重启:RAM 中的数据丢失,Flash 中的程序依然完好
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐