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

你可能感兴趣的文章
OSChina 技术周刊第十期,每周技术抢先看!
查看>>
oscp--python
查看>>
OSError: no library called “cairo-2“ was foundno library called “cairo“ was foundno library called
查看>>
OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
查看>>
osgearth介绍
查看>>
OSGi与Maven、Eclipse PlugIn的区别
查看>>
Osgi环境配置
查看>>
OSG——选取和拖拽
查看>>
OSG中找到特定节点的方法(转)
查看>>
OSG学习:C#调用非托管C++方法——C++/CLI
查看>>
OSG学习:OSG中的智能指针
查看>>
OSG学习:OSG组成(一)——组成模块
查看>>
OSG学习:OSG组成(三)——组成模块(续):OSG核心库中的一些类和方法
查看>>
OSG学习:OSG组成(二)——场景树
查看>>
OSG学习:OSG组成(二)——渲染状态和纹理映射
查看>>
OSG学习:WIN10系统下OSG+VS2017编译及运行
查看>>
OSG学习:人机交互——普通键盘事件:着火的飞机
查看>>
OSG学习:几何体的操作(一)——交互事件、简化几何体
查看>>
OSG学习:几何体的操作(二)——交互事件、Delaunay三角网绘制
查看>>
OSG学习:几何对象的绘制(一)——四边形
查看>>