博客
关于我
【IoT】ROM、RAM 和 FLASH 浅析
阅读量:768 次
发布时间:2019-03-17

本文共 976 字,大约阅读时间需要 3 分钟。

ROM、RAM 和 FLASH 的应用与运作原理

在嵌入式系统中,ROM(只读存储器)、RAM(随机存取存储器)和FLASH存储器是三个常用的存储器类型。这三种存储器在嵌入式系统中各有不同的应用场景和工作原理。

1. ROM 的应用

ROM 是存储固化程序的存储器,程序运行后不可改动。ROM 中存储的内容包括:

  • 程序代码
  • 固定数值
  • 程序运行所需的一些初始化数据

在C语言和ASM语言中,ROM 存储的内容包括:

  • 所有C文件和ASM文件中的代码
  • 全局变量
  • 局部变量
  • const限定符定义的常量数据
  • 启动程序(如ARM中的bootloader或X86中的BIOS)

例如,家庭用电能表的内核通常是一款单片机,其控制逻辑和固化程序存储在ROM中。

2. RAM 的应用

RAM 是程序运行时所需的存储器,存储的是需要随机访问和改写的数据。RAM 中存储的内容包括:

  • 全局变量
  • 局部变量
  • 堆栈段(用于函数调用和递归)
  • 需要被改写的数据

这些数据在程序运行时会被频繁访问和修改,掉电后这些数据会丢失。因此,RAM 是程序运行所需的临时存储器。

3. FLASH 存储器的应用

FLASH 孠存储用户程序和需要永久保存的数据。它是一种可写入但不可再删的存储器,适合存储:

  • 用户程序
  • 需要长期保存的数据

例如,家庭用电能表在每次采集电压和电流数据后,会计算电度并将结果存储到FLASH存储器中,以便在停电时保留数据。


ROM、RAM 和 FLASH 的运作原理

程序在开发过程中通常经历编译、汇编和链接步骤,最终生成hex文件。通过烧录工具和烧录器,将hex文件烧录到目标存储器中。

1. ROM 的烧录过程

  • ROM 的烧录通常使用专用的烧录软件。
  • 烧录完成后,ROM 中存储了所有程序内容,包括代码、函数中的局部变量、头文件中声明的全局变量以及const限定符定义的常量。

2. FLASH 孠的烧录过程

  • 对于基于Flash类型的MCU的系统,ROM空区域通常是整字节对齐的,大小为ak×8bits。

3. RAM 的使用

  • RAM 是程序运行时所需的临时存储器,存储需要改写的数据。
  • 在嵌入式系统中,开发者需要根据需求配置RAM的大小和使用方式。

通过理解ROM、RAM和FLASH的应用场景及其运作原理,开发者可以更好地设计嵌入式系统,优化程序性能和存储管理。

转载地址:http://akvhz.baihongyu.com/

你可能感兴趣的文章
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
Oracle——distinct的用法
查看>>
Oracle、MySQL、SQL Server架构大对比
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>
Oracle中DATE数据相减问题
查看>>
Oracle中merge into的使用
查看>>
oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
查看>>
oracle中sql的case语句运用--根据不同条件去排序!
查看>>
Oracle中Transate函数的使用
查看>>
oracle中关于日期问题的汇总!
查看>>
Oracle中常用的语句
查看>>
Oracle中序列的操作以及使用前对序列的初始化
查看>>
oracle中新建用户和赋予权限
查看>>
Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
查看>>
Oracle中的rownum 和rowid的用法和区别
查看>>
oracle中的大小写、字符、dual、数字、处理、日期、函数、显/隐式、时间、条件表达式case、decode、to_date、to_char、sysdate
查看>>
oracle中表和视图的区别,oracle中常用表和视图
查看>>
oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
查看>>
Oracle从11g导出后导入10g
查看>>