您现在的位置是:网站首页> 硬件

MCU寄存器地址内存地址

  • 硬件
  • 2021-04-04
  • 764人已阅读
摘要

寄存器在CPU内部;数据存储器不在CPU内部,相应的,访问寄存器的时间也比访问存储器的时间短

工作寄存器和数据存储器统一编址

堆栈指针SP 程序计数器PC


RAM:数据存储器 和 CPU寄存器统一编址

ROM:程序存储器

一个进程运行时,所占用的内存,可以分为如下几个部分:

1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。

2、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS释放。

3、全局变量、静态变量:初始化的全局变量和静态变量放在一块区域,未初始化的全局变量和和未初始化的静态变量在相邻的的另一块区域。程序结束后由系统自动释放。

4、文字常量:常量字符串就是放在这里的。这些数据是只读的,分配在RO-data(只读数据存储区),则被包含在flash中,程序结束后由系统自动释放


5、程序代码(code):存放函数体的二进制代码。

单片机的程序存储分为code(代码存储区)RO-data(只读数据存储区)RW-data(读写数据存储区) 和 ZI-data(零初始化数据区)

  • Flash 存储 code和RO-data
  • Sram 存储 RW-data 和ZI-data

在这里插入图片描述

Code为程序代码部分 = 程序代码区(code)

RO-data 表示 程序定义的常量 = 文字常量区

RW-data 表示 已初始化的全局变量 = 栈区(stack)堆区(heap)全局区(静态区)(static)

ZI-data 表示 未初始化的全局变量


Top