文档详情

CC2540内部存储结构pdf

仙***
实名认证
店铺
DOC
170KB
约5页
文档ID:136352384
CC2540内部存储结构pdf_第1页
1/5

CC254x 内部存储结构注:本文复制于网友 bailyzheng 的文章,地址: 一、 CC254x 里的四种存储空间(结构上划分的存储空间,并不是实际的存储器,是一种理 论上的概念)1. CODE 程序存储器 用处存放程序代码和一些常量有 16 根地址总线,所以 CODE 的寻址范围是 0000H~FFFFH 共 64KB2. DATA 数据存储器 用于存放程序运行过程中的数据有 8 根地址总线,所以 DATA 的寻址空间为 00H~FFH 共 256 byte. 低 128 位可 以直接寻址,高 128 位只能间接寻址3. XDATA 外部数据存储器(只能间接寻址,访问速度比较慢) DMA 是再 XDATA 上寻址的,这一点很重要有 16 根地址总线,所以 XDATA 的寻址空间为 0000H ~ FFFFH 共 64K4. SFR 特殊功能寄存器 就是那些 T1CTL, EA, P0 等配置寄存器存储的地方 共 128byte 因为 CC254x 的配置寄存器比较多,所以一些多余的寄存器就放到了 XREG 里面 XREG 的大小为 1K XREG 的访问速度比 SFR 慢以上 4 中存储空间只是 4 种不同寻址方式的概念,并不代表物理上具体的存储设备。

例如FLASH 或者 EEPROM 都可以作为物理的存储媒介映射到 CODE 上, DRAM 或者 SRAM 都可以作为存储媒介映射到 DATA中CODE和DATA是存储空间的概念,FLASH、SRAM、EEPROM 等是具体的物理存储设备, 这两个概念不要混淆 这好比, 电脑需要 RAM 和 ROM, 这个 ROM 可以是西部数据的硬盘,也可以使三星的硬盘,也可以是不同材料的固态硬盘 一个是存储空间,另一个是具体的物理存储设备二、关于 CODE 存储器的映射大家肯定会有疑问: 既然CODE的寻址范围只有 64KB,那CC254xF256怎么有256KB 的 flash 呢?正是为了解决寻址空间不足的问题, CC254x才提出了映射的概念当然,映射的另一重要目的是为了 DMA)CC254x把FLASH存储器分成了几个 bank,每个bank的大小是32KB,即对于F256来讲, 它有 8 个 bank 分别是 bank0~bank7( 不同芯片, bank 数目不同 )通过 FMAP.MAP[2:0] 控制, 把不同的编号的 bank映射到CODE上,解决了寻址空间受限制的问题上图 ..OxFFFFBank 0-7 (32KB FLASH)FMAP.MAP[2:0]选择需 婪映射过来的bank0x8000Ox7FFFCommon Area/Bank 0 (32KB FLASH) root bank 程序启动的bankFigure 2-2. CODE Memory Space从图中可以看出,bankO是rootbank,就是程序开始执行的地方,这个 common area始 终都是对应 FLASH存储器的0000H~7FFFH, 上面的另一半可以映射 bank0~7.我以前一 直疑惑,为什么 common area已经有bankO 了,上面怎么还可以有 bankO,从user guide里 看,这样是可以的,就比如 CC254XF32,只有一个bank0,它也只能这么映射了吧。

三、关于XDATA存储器的映射关于XDATA的映射,可以这么说: 一切都是为了 DMA! ! 为了让DMA能访问所有的存储区域,所以把所有的存储器都映射到了 XDATA上上图:Figure 2J・ XDATA Memory Space (Showing SFR and DATA Mapping)从图中可以看出,XDATA中包含了所有存储器的映射,包括 256kb的FLASH存储器,8K的SRAM 存储器,还有 SFR , XREG, INFORMATION FAGE这里看出来,其实CC254X 的DATA,和XDATA,都是用SRAM作为物理存储媒介的,但是它们的寻址方式不一样, 所以访问 DATA,比访问 XDATA 要快至于 SFR,XREG,INFORMATION PAGE,我不知道它 们用了什么物理存储媒介,但是它们都被映射到 XDATA上,可以被DMA访问这里要搞清楚一个概念, 映射到XDATA上,不代表就只能用 XDATA的寻址方式访问比如SFR,它虽然被映射到了 XDATA上,只能说明,DMA可以通过访问XDATA来操作SFR, 但是CPU还是可以通过单周期访问 SRF•打个比方,我们平时坐的公交车上都有一把逃生应急锤,在紧急情况下可以敲破窗子逃生。

我们平时不会使用锤子敲碎窗子进出车厢, 我们平时有车门可以走但是在特殊情况下(比如 DMA要操作某个存储器中的数据时),我们可以用特殊的方法(从 XDATA上的映射来得到我们想要的数据) 四、关于从SRAM启动代码Banks 0-7(Upper 24KB FLASH)OgflOOQtSRAM StZE0x8000 + SRAM_S(ZE - 1SRAMQjtaooo0jc7FFFMEMCTRE.XMAP=1 sra rri 映射到 CODE上图Common Area/Bank 0(32KB FLASH) root bank程序启动的bank |go: I : JFigure 23 CODE Memory Space for Running CodeFrom SRAM这种情况下,CC254x把SRAM存储器整个都映射到了 CODE的bank area,可以从 中执行代码不要理解错了,这里只是说可以从 SRAM中运行代码,不代表程序从SRAMSRAM中启动程序还是会从 CODE的rootbank的0000H开始执行,只不过我们可以通过程序控 制,让程序跳到 8000H之后,执行我们 SRAM中想要的代码。

下载提示
相关文档
正为您匹配相似的精品文档