阅读:3288回复:5
请问ARM的内存的重映射(Remap)是怎么一回事,是如何实现的?
现在若FLASH ROM的起始地址0x2000_0000,bootrom程序是装在这个里面,上电的时候系统将FLASH ROM的地址看作0x0,从这个执行程序,而FLASH本身的起始地址为0x2000_0000。系统是如何Remap的呢,是如何将FLASH的地址定为0x2000_0000,将SDRAM的地址定为0x0的呢?仅仅是将FLASH里的IMAGE文件拷贝到SDRAM里就可以了嘛,这个动作就能完成内存的重新映射了嘛?请大侠指点!(此处的ARM芯片已经将内存的起始终止地址定好,不能通过寄存器来配置)
|
|
沙发#
发布于:2004-07-02 23:16
首先要明确你使用的ARM是否支持MMU功能,如果支持就很简单啦
只需要配置MMU既可以实现内存地址的映射 如果不支持的话,一般来说可以靠配置每个memory的CS的基地址这种方式来实现映射.譬如将Flash的基地址映射为0 |
|
板凳#
发布于:2004-07-04 14:41
仔细看看Datasheet就可以了。
|
|
地板#
发布于:2004-07-13 15:50
ARM7TDMI是不支持MMU的,ARM720T以上型号支持。
|
|
地下室#
发布于:2004-07-14 11:26
remap这一概念在atmel的arm7中被着重提出,并且也给出了详细的例子。其实就是简单的MMU,但是没有内存保护。 :D
|
|
5楼#
发布于:2004-07-28 19:23
remap的概念:从0x0取指令引导后,把RAM影射到0x0。
作用:加快启动的速度 配置:和CPU有关:ARM4510通过MEM BANK积存器来配置BANK的起始地址 AT91通过REMAP积存器的相关位配置 总之,处理器决定SDRAM对应的BANK不能改变 |
|