cc2430的ram和rom的划分

xdata数据代表了哪一种类型的数据。

8051cpu有四个不同的存储空间:

CODE:16位只读存储区,用于程序存储。

DATA:8位可读/可写数据存储空间,cpu可以直接或间接寻址。

XDATA:16位可读/可写数据存储空间,访问XDATA存储器在硬件上比访问DATA慢,因为CODE和XDATA共享cpu的内核总线,这样从CODE中预先提取指令可以不必和访问XDATA同时执行。

SFR:这个就不用说了吧

存储类型介绍:



(2)第二个问题:
cc2430存储器映射在两个重要方面不同于标准8051存储器映射,如下所述。

第一,为了使得DMA控制器访问全部物理存储空间,并由此使得DMA在不同8051存储空间之间进行传输,全部物理存储器都映射到XDATA存储空间。

第二,CODE存储空间可以选择,因此全部物理存储器可以通过使用CODE存储器空间的统一映射,映射到CODE空间。

下面的图描述了不同的物理存储器是如何映射到cpu的存储空间的,以及每个闪存的大小选项。注意对于CODE存储空间,显示了两个可能的存储映射:统一和非统一映射。






XDATA存储器空间:外部数据存储器(XDATA)映射的每个闪存选项如图7所示、对于闪存大于32KB才芯片,最低的55KB闪存映射到地址0X000-0XDEFF。

对于所有芯片,8KB SRAM映射到地址0xE000-OXFFFF,SFR寄存器映射到地址0XDF80-0XDFFF,这允许DMA控制器和cpu在一个统一的地址空间对所有物理存储器进行存取操作。这种映射的一个后果是,SRAM第一个可用的地址是0xE000,而不是0x0000,因此必须对编译器汇编器进行配置。

CODE存储器空间:代码存储器(CODE)空间使用统一或非统一映射,映射到物理存储器,如图8-9所示。CODE存储器空间的统一映射类似于XDATA映射。注意有一个例外,就是SFR寄存器是在内部的,因此无法访问。

对于大于32KB的闪存,在采用统一映射时,其最低端的55KB闪存映射到CODE存储器空间,这与XDATA存储器空间的映射类似。

8KB SRAM包括在CODE地址空间之内,从而允许程序的可以超出SRAM的范围。

闪存为128KB的芯片(cc2430-F128),对于CODE存储器空间,要使用分区的办法,由于物理存储器时128KB,CODE存储器空间的高32KB需要通过闪存区的选择位映射到32KB物理闪存区中的一个,如非统一的存储器映射所示。闪存区的选择,由设置SFR寄存器的对应位MEMCTR.FMAP完成。注意:闪存区的选择仅当使用非统一映射CODE存取器空间时才能够进行。当使用统一映射CODE存储器空间映射时,CODE存储器映射到位于0x0000-0xDEFF的低55KB闪存空间,存储映射所示。

DATA存储器空间:数据存储器(DATA)的8位地址,映射到8KB SRAMD的高256字节,在这个范围中,也可以对地址范围为0xff00-0xffff的CODE空间和XDATA存储空间进行存取。

SFR存储器空间:特殊功能寄存器(SFR)可以对具有128个入口的硬件寄存器进行存取,也可以对地址范围为0xDF80-0xDFFF的XDATA/DMA进行存取。一些具体cpu的SFR寄存器在cpu内核的内部,只能使用SFR存储空间访问,不同通过仿照映射到XDATA存储空间的方式存取。

 

备注:

data、idata、xdata、pdata、code是定义不同数据的数据或地址空间的伪指令,含义如下:
data:  0x00-0x7f,片内RAM直接寻址区
idata: 0x00-0xff,片内RAM间接寻址区
xdata: 0x0000-0xffff,64KB片外RAM数据区
pdata: 0x00-0xff(256字节/页),分页片外数据存储区
code:  0x0000-0xffff,64K片内外ROM代码区


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值