三种存储区介绍

描述

map中三种内存

编译完工程会生成一个.map 的文件,该文件的最后说明了ROM和RAM占用空间大小,如下图所示:
 

ROM

其中ROM就是程序烧录到FLASH中的大小,RW就是占用RAM大小。

RO

RO (Read Only ): 只读区域, 需要长久保存,烧录到Flash中,下文的text段和constdata段属于此属性区。

RW

RW (Read Write): 可读可写,通常为全局变量和静态变量,下文中的.data段和.bss属于RW区。

ZI

ZI (Zero Init): 没有进行初始化或者初始化为0,系统上电时会主动把此区域数据进行0初始化,下文的.bss段就是。另外, 可翻看Keil工具编译的map文件,Heap和Stack区也进行了Zero的属性标注, 因此,Heap和Stack也可认为是ZI区域。

ROM与RAM数据比较

 

数据段 说明 RAM ROM
.bss -- true false
.data   true true
RO-data 常量 false true
.text -- false true
stack 局部变量等 true false
heap malloc true false

 



审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分