问个关于地址空间分配的问题

[复制链接]
2634|3
 楼主| sxggj 发表于 2008-6-24 10:46 | 显示全部楼层 |阅读模式
手头的CPU是PXA255,SDRAM是K4S513233,我的问题是:当SDRAM初使化设置完成后,它的地址如何改变,比如现在它的地址是0xa1000000,而我的ELF文件是定位在0xc0008000,那么我现在需要做哪些工作才能将SDRAM移到这个位置呢,谢谢大侠,本人初学
 楼主| sxggj 发表于 2008-6-24 13:33 | 显示全部楼层

这是不是跟MMU操作有关,请大侠指点呀

相信每一个初学者都在等待醍醐灌顶
阿南 发表于 2008-6-24 19:39 | 显示全部楼层

SDRAM的地址是由硬件确定的,软件修改不了的

  
 楼主| sxggj 发表于 2008-6-25 09:28 | 显示全部楼层

可是MMU开后,我们可以把SDRAM的地址映射到想要的地方呀

比如下面这段话:<br />&lt&lt对于实际编程工作而言,主要是确定如何编写页表中的内容并如何确定页表项地址。现举例如下:<br />假设物理地址为0x36B0_0000~0x36Bf_ffff(1M空间)的一块连续空间需映射为0x0100_0000~0x010f_ffff的一块连续空间:<br />1.确定页表项中的内容:把物理地址的基地址作为页表项的高12位(31bit~21bit),填写访问属性。假设可以读写,可以读缓存、写缓冲,这样该页表项内容为0x36B0_0C00E;<br />2.确定页表基地址,填写页表基地址到CP15寄存器的C2中。页表的基地址要为64KB对齐;<br />3.计算出偏移地址,把内容填写到页表项地址中。页表项地址=页表基地址+(物理地址基地址&gt&gt18),如页表基地址为0xA100_0000,那么,页表项地址=0xA100_0DAC;<br />4.将页表项数值写到对应的页表项地址中。上例中,需要向地址0xA100_0DAC中写入0x36B0_0C00E。&gt&gt<br /><br />我是想问::上面这段话的意思是不是要操作CP15,如果是操作CP15的哪个寄存器,谢谢!<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

230

主题

1397

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部