两种存储器三种内存大小六段段_第1页
两种存储器三种内存大小六段段_第2页
两种存储器三种内存大小六段段_第3页
两种存储器三种内存大小六段段_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.两种存储器FLASHFlashMemory(闪速存储器)是一种安全、快速的存储体,具有体积小、容量大、成本低、掉电不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。Flash是区块结构,即在物理结构上分成若干个物理块,区块之间相互独立。Flash写操作必须先擦后写,Flash只能将数据位由1写成0,不能从0写成1,所以在对存储器写之前必须先执行擦除操作,擦操作的最小单位是一个区块,而不是一个字节。RAMRAM(RandomAccessMemory)又称随机存取存储器,也叫内存,是与CPU直接交换数据的内部存储器。速度很快,断电RAM不保留数据。RAM主要用来存储程序中用到的全局变量、堆栈等。2.三种存储区map中三种内存编译完工程会生成一个.map的文件,该文件的最后说明了ROM和RAM占用空间大小,如下图所示:其中ROM就是程序烧录到FLASH中的大小,RW就是占用RAM大小.RORO(ReadOnly):只读区域,需要长久保存,烧录到Flash中,下文的text段和constdata段属于此属性区RWRW(ReadWrite):可读可写,通常为全局变量和静态变量,下文中的.data段和.bss属于RW区ZIZI(ZeroInit):没有进行初始化或者初始化为0,系统上电时会主动把此区域数据进行0初始化,下文的.bss段就是.另外,可翻看Keil工具编译的map文件,Heap和Stack区也进行了Zero的属性标注,因此,Heap和Stack也可认为是ZI区域ROM与RAM数据比较数据段说明RAMROM.bss--truefalse.datatruetrueRO-data常量falsetrue.text--falsetruestack局部变量等truefalseheapmalloctruefalse3.六段段程序运行时的5段.text.text代码段:用来放程序代码(code),在代码编译完成后,长久只读存放于此,属于图中的代码段.constdata.constdata只读常量数据段:const限定的数据类型存放在此,属于图中的常量存储区.data用来存放初始化不为0的全局变量(global)和静态变量(static),它是可读可写的,属于图中的静态存储区.bss.bss的英文是BlockStartedbySymbol,翻译过来就是由符号开始的块。此部分类似于数据部分,只是它不占用可执行文件中的空间。bss通常是指用来存放程序中没有初始化或初始化为0的全局变量和静态变量的一块内存区域,可读可写,属于图中的静态存储区,如果变量未初始化,系统会将变量初始化为0heapheap堆区:通常我们说的动态内存分配,使用malloc/fr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论