您的位置 首页 解答

单片机地址空间,仓库了解

datandash;可寻址片内ram0x00-0x7fbdata—可位寻址片内ramidata—可寻址片内ram,允许访问全部内部ram0x00-0xffpadata&mdas

data –可寻址片内ram 0x00-0x7f

bdata—可位寻址片内ram

idata—可寻址片内ram,答应拜访悉数内部ram 0x00-0xff

padata—分页寻址拜访片外ram

xdata—可寻址片外ram 0x0000- 0xffff

code–程序存储区单片机存储器分ROM跟RAM之分,RAM寄存中心成果,数据和常常改换的代码,ROM寄存code。51单片机选用的是哈弗结构,即数据跟代码具有独自的地址空间。存储器能够分为程序存储器(eerom,flash之类),内部数据存储器(ram),SFR,位地址空间和外部数据存储器。内部数据存储器在物理上分为内部SRAM和特别功用寄存器,而内部分为低(0x00-0x7f)和(0x80-0xff),高128字节地址重复,需求不同的拜访方法。SFR用直接寻址方法,SRAM需求直接。这儿SFR是寄存器,硬件上是中央处理器的内部组成部分,拜访速度很快。在低128B的SRAM,0x00-0x1f是4个通用作业寄存器,每组有R0-R7。运用哪一组,能够经过PSW中的RS1,RS0来装备。位寻址是在0x20-0x2f

程序内存能够分为几个区,栈区(stack),堆区(Heap),大局区(static),文字常亮区,程序代码区。程序编译之后,大局变量,静态变量现已分配好内存空间,在函数运转时,程序需求为局部变量分配栈空间,当中止来时,也需求将函数指针入栈,维护现场,以便于中止处理完之后再回到之前履行的函数。栈是从高到低分配,堆是从低到高分配。咱们一般说的仓库指的栈。仓库又分硬仓库和软仓库,硬仓库即SP,从片内RAM的顶部向下成长。软仓库在硬仓库跟大局变量区之间的空间,C51函数调用经过R0-R7和栈来完成。

为什么单片机启动时,不需求用bootloader将代码从ROM搬移到RAM,而ARM则需求。这儿咱们能够先看看单片机程序履行的进程,单片机履行分三个过程,取履行—剖析指令—-履行指令。取指令的使命是:依据PC的值从程序存储器读出指令,送到指令寄存器。然后剖析履行履行。这样单片机就从内部程序存储器去代码指令,从RAM存取相关数据。要知道RAM取数的速度是远高于ROM的,可是单片机由于自身运转频率不高,所以从ROM取指令慢并不影响。而ARM不同,cpu运转的频率高,远大于从ROM读写的速度,所以一般有操作系统,都需求将代码部分拷贝到RAM中再履行。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/262198.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部