概述

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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐