Board logo

标题: [求助]关于MC9S12XDP512的RAM的问题? [打印本页]

作者: freescale_bjut    时间: 2008-3-4 16:13     标题: [求助]关于MC9S12XDP512的RAM的问题?

MC9S12XDP512有32 Kbytes 的RAM,谁能解释一下如何使用这32K的RAM空间,使用的时候需要一些配置吗?建立的工程中的prm文件中有non-paged RAM和paged RAM的分法,或者在数据手册里有8K RAM和4k RAM window的说法。谁能解释一下他们的关系,他们分别是怎样工作的?谢谢!
作者: TristoneGao    时间: 2008-3-6 10:06

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。


作者: wangnan    时间: 2008-5-18 17:33

感谢楼上的,俺最近也在用xd。如果能结合一个例子就更好了。
作者: jianw007    时间: 2008-5-18 18:52

讲得很透彻,谢谢!
作者: g_xiaocheng    时间: 2008-5-19 09:17

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


作者: strongchen    时间: 2008-5-19 10:22

可以参考这个帖子:

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






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0