内存单位大小排列及名称 内存的单位大小排列
admin2023-03-05【电脑技术】浏览:238
1. 两种存储器
Flash Memory(闪速存储器)是一种安全、快速的存储体,具有体积小、容量大、成本低、掉电不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。
Flash是区块结构,即在物理结构上分成若干个物理块,区块之间相互独立。
Flash写操作必须先擦后写,Flash只能将数据位由1写成0,不能从0写成1,所以在对存储器写之前必须先执行擦除操作,擦操作的最小单位是一个区块,而不是一个字节。
RAM(Random Access Memory)又称随机存取存储器,也叫内存,是与CPU直接交换数据的内部存储器。速度很快,断电RAM不保留数据。
RAM主要用来存储程序中用到的全局变量、堆栈等。
2. 三种存储区
编译完工程会生成一个.map 的文件,该文件的最后说明了ROM和RAM占用空间大小,如下图所示:
RO-RW-ROM
其中ROM就是程序烧录到FLASH中的大小,RW就是占用RAM大小.
RO (Read Only ): 只读区域, 需要长久保存,烧录到Flash中,下文的text段和constdata段属于此属性区
RW (Read Write): 可读可写,通常为全局变量和静态变量,下文中的.data段和.bss属于RW区
ZI (Zero Init): 没有进行初始化或者初始化为0,系统上电时会主动把此区域数据进行0初始化,下文的.bss段就是. 另外, 可翻看Keil工具编译的map文件,Heap和Stack区也进行了Zero的属性标注, 因此,Heap和Stack也可认为是ZI区域
3. 六段段
.text代码段: 用来放程序代码(code), 在代码编译完成后, 长久只读存放于此,属于图中的代码段
.constdata只读常量数据段: const限定的数据类型存放在此,属于图中的常量存储区
用来存放初始化不为0的全局变量(global)和静态变量(static),它是可读可写的,属于图中的静态存储区
.bss的英文是Block Started by Symbol,翻译过来就是由符号开始的块。此部分类似于数据部分,只是它不占用可执行文件中的空间。
bss通常是指用来存放程序中没有初始化或初始化为0的全局变量和静态变量的一块内存区域,可读可写,属于图中的静态存储区,如果变量未初始化,系统会将变量初始化为0
heap堆区: 通常我们说的动态内存分配,使用malloc/free进行申请和释放,属于动态存储区.
stack栈区: 在代码执行时用来保存函数的局部变量和参数,属于动态存储区.
相关文章
- 微信双开多开秘籍:绝妙同时登录多个微信号技巧
- 如何实现不需要任何权限查看Chrome浏览器保存的密码(FireFox、Edge浏览器同样适用)
- 请将磁盘插u盘是什么意思 u盘坏了能修复吗
- ppt怎么制作闪烁的星空动图 ppt星光闪闪动画效果
- 最安全的浏览器是哪一款 浏览器哪款好用安全
- win10电脑玩红警老是卡死怎么办 win10玩红警为什么会卡死
- u盘装机大师怎么装xp系统
- Win10鼠标间歇性卡顿解决方法:鼠标卡顿几秒恢复的秘密
- ACCESS数据库备注的字段类型怎么设置为长文本 access数据库数据类型
- 芯片解码:电脑CPU的奥秘与复杂性,别只看到表面
- 如何设置144hz显示器:电脑屏幕刷新率设置方法
热评文章
企业微信分屏老师能看到吗 企业微信切屏老师能看见吗
excel如何批量输入求和公式 excel批量输入求
罗技驱动win7能用吗 罗技鼠标支持win7系统吗
打印机驱动卸载干净教程 打印机驱动怎样卸载干净
显卡驱动更新小技巧,让你的电脑运行更稳定
手机系统声音不起眼,但很重要 手机系统声音有的,但