博客
关于我
【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/

你可能感兴趣的文章
Pandas 对数据框的布尔比较
查看>>
pandas 找到局部最大值和最小值
查看>>
pandas 时间序列重新采样结束给定的一天
查看>>
pandas 根据不是常量的第三列的值将值从一列复制到另一列
查看>>
pandas 根据值从多列中的一列查找
查看>>
Pandas 根据布尔条件选择行和列
查看>>
pandas 版本兼容特定的蟒蛇和NumPy配置吗?
查看>>
pandas 生成excel多级表头
查看>>
pandas 读取excel数据,以字典形式输出
查看>>
Pandas 读取具有浮点值的 csv 文件会导致奇怪的舍入和小数位数
查看>>
pandas 适用,但仅适用于满足条件的行
查看>>
pandas 重新采样到每月的特定工作日
查看>>
pandas :按移位分组和累加和(GroupBy Shift And Cumulative Sum)
查看>>
pandas :检测一个DF和另一个DF之间缺失的列
查看>>
Pandas-从具有嵌套列表列表的现有列创建动态列时出错
查看>>
Pandas-通过对列和索引的值求和来合并两个数据框
查看>>
pandas.read_csv()的详解-ChatGPT4o作答
查看>>
PANDAS.READ_EXCEL()输出‘;溢出错误:日期值超出范围‘;而不存在日期列
查看>>
pandas100个骚操作:再见 for 循环!速度提升315倍!
查看>>
Pandas:对给定列求和 DataFrame 行
查看>>