首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]关于MC9S12XDP512的RAM的问题?

[求助]关于MC9S12XDP512的RAM的问题?

MC9S12XDP512有32 Kbytes 的RAM,谁能解释一下如何使用这32K的RAM空间,使用的时候需要一些配置吗?建立的工程中的prm文件中有non-paged RAM和paged RAM的分法,或者在数据手册里有8K RAM和4k RAM window的说法。谁能解释一下他们的关系,他们分别是怎样工作的?谢谢!
freescale的S12X系列的存储空间映射比较复杂,这里简单对RAM的使用介绍一下(以MC9S12XDP512的32K RAM)为例。
首先明确一点:使用时不需要任何配置。映射关系由硬件已经确定了,用户无需也无法更改。(这与S12不同)
再明确一点:CPU只能直接访问(不通过页面寄存器)64K的本地空间,其中有12K是RAM空间。地址范围是0x1000~0x3FFF。CPU通过3个页面寄存器(这里暂不讨论GPAGE)可以访问8M的全局空间,对于MC9S12XDP512,在这8M的全局空间中有32K的RAM,地址范围用全局地址表示是0xF_8000~0xF_FFFF。下面说明RAM的12K本地空间和32K全局空间的映射关系。
1) 12K本地空间中的0x2000~0x3FFF的8K空间为非页面空间(也就是prm文件中的non-paged RAM,在prm中通常用本地地址表示);在全局页面中对应为0xF_E000~0xF_FFFF。
2) 另外的0x1000~0x1FFF的4K空间为页面空间,也就是您提到的4K RAM的窗。通过这个窗口,在RAM页面寄存器(RPAGE)的辅助下可以访问所有的32K的RAM。这32K RAM分为8个页面,每个页面大小为4K,页面号为0xF8~0xFF。通过设置RPAGE为相应的页面号,就能通过这4K的窗口来访问8个页面。在prm文件中通常不定义4K窗口,而是定义8个页面。通常在prm中通常用逻辑地址表示这8个页面而不是用全局地址。所谓逻辑地址就是:高8位是页面号,低16位是4K窗口的本地地址。
3) 另外您可能会注意到在prm中RAM最后两个页面的定义被注释掉了。原因是他们对应的全局地址为0xF_E000~0xF_FFFF,亦即为本地的8K RAM空间,这在non-paged RAM中已经定义过了,故不重复了。
4) 最后强调一点:当CPU直接访问8k本地空间时,RPAGE无效,硬件直接映射到全局地址为0xF_E000~0xF_FFFF;当CPU访问4K本地空间时,RPAGE有效,CPU将其内容理解为页面号(F8~FF)。注意对应全局地址为0xF_E000~0xF_FFFF。

感谢楼上的,俺最近也在用xd。如果能结合一个例子就更好了。
讲得很透彻,谢谢!

请问2楼,这些资料在哪能找到啊???非常感激!!

路是一步一步走出来的!!

可以参考这个帖子:

http://bbs.eccn.com/ecbbs/dispbbs.asp?boardID=3&ID=83424&page=1

海纳百川  有容乃大
返回列表