任何嵌入式系统都将包括一个存储单元来存储和检索数字信息。这包括构成微控制器的关键元素之一的程序存储器和数据存储器。

程序存储器(程序内存)用于永久保存正在执行的程序,而数据存储器(数据内存)用于临时存储和保存中间结果和变量。

程序存储器

程序内存:程序内存用于执行永久保存程序或更常称为“程序代码”,它分为两个部分,启动程序和应用程序。

一些微控制器保持可配置部分的大小。
这两个部分可以具有不同级别的保护属性。
根据编译器中的设置,程序存储器也可用于存储常量变量。
一些微控制器会将引导部分保存在物理上独立的只读存储器中,通常是 ROM,而将程序存储器的其余部分保存在片上闪存中。

数据内存:数据存储器是在程序执行期间用于存储变量的易失性存储器,一旦微控制器的电源丢失,就会被删除。数据内存通常会包括以下内容:

通用寄存器

数据存储器包括几个通用的寄存器,证明了最短(最快)的访问时间,通常允许单周期算术逻辑单元(ALU)操作。

I/O内存

I/O内存空间包含CPU外围功能的地址,如控制寄存器、SPI和其他I/O函数。

扩展I/O内存(MCU依赖)

由于复杂性,一些具有更多外设的微控制器包括扩展的I/O内存,它占据了内部SRAM的一部分。扩展的I/O内存依赖于MCU。在存储I/O和扩展I/O内存中存储数据通常只由编译器处理。用户不能使用此内存空间来存储其数据。

内部RAM

内部SRAM(数据内存)用于临时存储和保存中间结果和变量。

因此,程序内存和数据内存在构建程序中都有不同的作用。程序内存必须是一个非易失性内存(通常是芯片上或芯片外闪存),即使关闭电源也能存储信息。相反,数据存储器并不保存信息,因为它需要电源来保持存储在芯片中的信息。

个人计算机中的程序存储器正是以这种方式实现的。 它具有包含基本输入/输出系统 (BIOS) 的程序存储器的固定部分。 这些程序永久保存在安装在主处理器板上的只读存储设备中。 以这种方式保存在 ROM 中的程序因其永久性质而被称为固件

当今 PC 中使用的 BIOS ROM 的典型大小为 2 兆位 (MB),即 256 KB。  PC 中程序存储的大部分是由动态随机存取读/写存储设备 (DRAM) 构建的。 它们可以安装在主处理器板上,也可以安装在附加内存模块或板上。 使用 DRAM 可以读取或写入这部分程序存储内存。 它的目的再次是存储要执行的程序,但在这种情况下,它们仅在需要时才加载到内存中。 程序通常从二级存储设备(HDD或Flash)中读入,存储在内存的程序存储部分,然后运行。 当程序终止时,它所在的程序内存部分将返回给操作系统以供重用。

此外,如果关闭电源,基于程序存储内存部分的内容就会丢失。由于这些程序的临时性性质,它们被称为软件。

        在PC领域,由于BIOS的小尺寸,主存储的主要部分是DRAM,将用于程序存储。相比之下,在一个嵌入式系统中,如电子游戏或咖啡机,完整的程序存储存储器是通过ROM或闪存设备来实现的。

        如前所述,频繁更改的信息存储在内存子系统的数据存储部分中。 例如,要由微型计算机或微控制器处理的数据保存在主存储器的数据存储部分中。 当程序运行时,数据的值可以反复变化。 出于这个原因,数据存储存储器必须使用 RAM 来实现。 在 PC 中,数据不会自动驻留在内存的数据存储部分。 就像软件一样,它是从辅助存储设备(例如硬盘)中读入内存的。 然后可以将 PC DRAM 的任何部分分配给数据存储。这一切都由操作系统软件管理。 当程序运行时,数据在 DRAM 中被修改并将它们写入磁盘以保存新值。 数据形式不必是数字; 它们也可以是字母数字字符、代码和图形模式。 例如,在运行文字处理器应用程序时,数据是字母数字和图形信息。

嵌入式系统 ---> 程序存储器和数据存储器相关推荐

  1. Windows CE嵌入式系统程序开发

    <Windows CE嵌入式系统程序开发> 基本信息 作者: 胡文    冯剑    姜海涛    胡玥    丛书名: 单片机与嵌入式丛书 出版社:机械工业出版社 ISBN:978711 ...

  2. linux嵌入式系统程序加密工具推荐:Virbox Protector.

    linux嵌入式系统程序加密工具推荐:Virbox Protector. 软件开发商 Virbox Protector是由北京深思数盾科技股份有限公司研发,2018年上市的一款加密工具. ARM-Li ...

  3. excel量化交易接口系统程序怎样进行数据预处理?

    在数据统计和预测的过程中,工程师基本都使用现成的算法,工程师的主要工作是根据具体业务逻辑预处理数据和选择算法,即可以使用excel量化交易接口系统来进行数据预处理. 首先要对数据预处理包括数据的归一化 ...

  4. DLT(Diagnostic Log and Trace)嵌入式系统程序运行记录

    http://blog.csdn.net/yanlinembed/article/details/49837975 DLT的使用有属于Application范畴与Context范畴.在使用DLT时,需 ...

  5. 单片机片外程序存储器数据存储器操作命令

    说明:单片机片外程序存储器数据存储器操作命令与通常所说的存储器不同,和I2C总线的AT24C02不同,SPI协议的也不同,是指采用专用接口电路,应用P0口P2口地址总线和控制线的"三总线&q ...

  6. STM32存储器组织-STM32存储器映像-嵌入式SRAM-STM32位段-嵌入式闪存-STM32启动配置

    STM使用说明第二篇 [1]STM32存储器组织 [2]STM32存储器映像 [3]嵌入式SRAM [4]STM32位段 [5]嵌入式闪存 [6]STM32启动配置 [1]STM32存储器组织 程序存 ...

  7. 嵌入式设计与开发实践要点[1.2]-嵌入式系统的内核

    1.2.1 嵌入式系统内核分类 1.通用处理器与专用处理器 (1)微处理器 (2)微控制器 (3)数字信号处理器 2.专用集成电路 3.可编程逻辑器件 4.商用现货组件 1.2.2 通用处理器与专用处 ...

  8. 嵌入式系统概论-考试总结

    Exam-嵌入式总结 1. 简答题 1.1. 什么是CPS?请画出典型结构,尝试描述典型应用[2015] CPS,信息物理系统,计算进程和物理进程的统一体,集计算.通信.控制于一体的下一代智能系统,由 ...

  9. 嵌入式系统开发期末复习

    嵌入式系统开发 嵌入式系统概述 ARM技术及体系结构 ARM7TDMI指令系统 嵌入式系统概述 1.什么是嵌入式系统?有何特点? 嵌入式系统是以应用为中心,以计算机技术为基础,且软.硬件可裁剪的, 适 ...

  10. 嵌入式系统(Embedded System)概述及其应用

    前言 嵌入式系统?听到这个名词,没有接触的人是不是感觉很高大上?它真的有你心中想象的那样高级吗?关于嵌入式的基本概述,本篇博文将从以下几个方面阐述,部分内容可能不是很详细,感兴趣读者可以查阅相关资料. ...

最新文章

  1. Markdown 中的常用 LaTex 数学公式
  2. 吃饭/训觉-工作室应用隐私政策
  3. 栈与队列在SGI STL的底层实现
  4. C++ 重载强制类型转换运算符
  5. react 数据库排序_如何使用React对表数据进行排序
  6. DownloadManager不好用?试试ZlsamDownloadService
  7. 为什么要用BigDecimal
  8. [转载]Zookeeper开源客户端框架Curator简介
  9. 10分钟搞定工作周报
  10. Maven使用{PDF报表时导入坐标报错,解决·Cannot resolve com.lowagie:itext:2.1.7.js6
  11. 使用百度 EasyDL 实现电动车进电梯自动预警
  12. 手机距离传感器测试软件,距离传感器有什么用_手机距离传感器坏了
  13. Carson带你学Android:这是一份全面 详细的Android代码命名规范
  14. C#(Csharp)基础教程(上)(菜鸟教程笔记)
  15. 简单的酒店住房退房管理系统
  16. 升级win8后视频没有图像只有声音的一个解决方法
  17. 在layui表格中显示图片
  18. 27.iPhone加速度传感器简单介绍
  19. 登录页面html引入vue,用vue写简单的登录注册总结
  20. 你的fpga为什么不能正常工作——拆解第一款FPGA芯片分析原理

热门文章

  1. xcode6 下载地址
  2. mysql对象资源管理器在哪里_SQL server2008-对象资源管理器-数据库
  3. 硬盘检测重映射扇区计数失败
  4. [文献阅读]Detecting Spacecraft Anomalies Using LSTMs and Nonparametric Dynamic Thresholding
  5. sin1用计算机怎么算,sin1等于多少?
  6. 将活跃天数转化为等级,输入等级查询活跃天数
  7. tfs java_Jenkins TFS集成
  8. 天天向上python题目答案_Python入门习题3.天天向上
  9. 【笔记】【数字逻辑】可能是最详细的二进制、八进制、十进制、十六进制进制转换笔记
  10. 1080i、720p、1080p、N制、P制、帧率、高清电视、全高清