打印

一段Remap的代码,请大家来看看

[复制链接]
2390|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
williamt|  楼主 | 2007-3-1 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;    Configure the System Manger to remap the flash

; The Memory Bank Control Registers must be set using store multpiles
; Set up a stack in internal sram to preserve the original register contents

    LDR    r2, =remap_temp
    MOV    r1, pc
    LDR r3, =remap_EndSysMapJump
remap_temp
    MOV lr, #0
    CMP    r2, r1
    LDRGT    lr, =ROM_Start;ROM_Start=0x7F000000,remap后,ROM的地址 

    SUB    r3, r3, r2
    ADD    r1, r1, r3
    ADD    lr, lr, r1
    
; Load in the target values into the control registers
       ADRL    r0, remap_SystemInitData
     LDMIA   r0, {r1-r6}
     LDR    r0, =EBI_Ctrl
    
; Now run critical jump code
     STMIA   r0, {r1-r6}
     MOV    pc, lr
remap_EndSysMapJump

remap_SystemInitData
     ; Default sdram configuration
    DCD    0x000530C0                    ; EBICON : not need to change.
    DCD    0xFE040080                    ; ROMCON(Flash) -Unknown type:0xFE000FF0, A29LV800: 0xFE020080, W28J160: 0xFE030080
    DCD    0x000090E4                    ; SDCONF0(SDRAM) - 8M(2Mx32): 0x000090E3, 4M(1Mx16x2):0x00009062, 16M(4Mx16x2):0x000090E4             
    DCD    0x020090E4                    ; SDCONF1 - The same as SDCONF0 with proper base address   
    DCD    0x0000014B                    ; SDTIME0 - not need to change
    DCD    0x0000014B                    ; SDTIME1 - not need to change
    DCB "@SYSTEM_INIT_CFG"            ; A key word for future useage
    ALIGN

相关帖子

沙发
Swd21ic| | 2007-3-1 19:44 | 只看该作者

~~~

重映射的概念我还是很模糊啊。.
强人能解释下吗

使用特权

评论回复
板凳
阿南| | 2007-3-1 19:56 | 只看该作者

重映射,你可以理解成一段内存的内容整体复制到另一段内存

使用特权

评论回复
地板
Swd21ic| | 2007-3-1 21:08 | 只看该作者

~~~

比如我把0x00002000的内容映射到0x00000000
那我从0x00000000读的内容就是0x00002000的.
但是我可以使用0x00002000来访问

使用特权

评论回复
5
computer00| | 2007-3-1 21:53 | 只看该作者

不仅仅是复制,根本就是连在了一起。

不管是读还是写,访问两个地址是等价的了。

使用特权

评论回复
6
williamt|  楼主 | 2007-3-2 13:36 | 只看该作者

Remap

其实Remap,存储器本身没有没有变化,只是他的访问地址发生了变化
仔细阅读上面的程序:
原来Flash的起始地址是0x0000 0000
通过设置ROMCON的值0xFE04 0080的高13位,作为Flash的基地址
将Flash的基地址设为0x7F00 0000
同样原来SDRAM的起始地址不是0x0000 0000,通过SDCONF0将SDRAM的起始地址设置为0x0000 0000

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

41

帖子

0

粉丝