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

你可能感兴趣的文章
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>
Mysql中索引的最左前缀原则图文剖析(全)
查看>>
MySql中给视图添加注释怎么添加_默认不支持_可以这样取巧---MySql工作笔记002
查看>>
Mysql中获取所有表名以及表名带时间字符串使用BetweenAnd筛选区间范围
查看>>
Mysql中视图的使用以及常见运算符的使用示例和优先级
查看>>
Mysql中触发器的使用示例
查看>>
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>