QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2244|回复: 1

请问这些汇编是怎么运行的 :OR: SFR_BASE<<16

[复制链接]
发表于 2007-1-11 17:39:54 | 显示全部楼层 |阅读模式
RomBaseAddr        EQU                0
RomEndAddr        EQU                &20
RamBaseAddr        EQU                &100
RamEndAddr        EQU                &200       
       
        AREA        text, CODE, READONLY       

SFR_BASE        EQU                0x3ff        ;0x3ff0000
SRAM_BASE        EQU                0x3f8        ;0x3f80000
       
        ;EXPORT        InitMemory
InitMemory
        ldr        r0, =SYSCFG
        ldr        r1, =SDRAM_ITF :OR: SFR_BASE<<16 :OR: SRAM_BASE<<6 :OR: CACHE_ALL :OR: CACHE_EN       

;这是怎么运行的.
        str        r1, [r0]
       
        ldr        r0, =CLKCON
        ldr        r1, =0
        str        r1, [r0]
       
        ldr        r0, =EXTACON0
        ldr        r1, =0x0fff0fff
        str        r1, [r0]
        ldr        r0, =EXTACON1
        ldr        r1, =0x0fff0fff       
        str        r1, [r0]
       
        ldr        r0, =EXTDBWTH
        ldr        r1, =0xffff556
        str r1, [r0]
       
        adr        r0, MemCfgPara
        ldmia        r0, {r1-r11}
        ldr        r0, =ROMCON0       
        stmia        r0, {r1-r11}
       
        mov        pc, r14
       
MemCfgPara
        DCD        RomBaseAddr<<10 :OR RomEndAddr<<20 :OR: &60        ;&10840060
;DCD怎么分配 是怎么理解的?
;这个 &10840060 地址怎么计算出来的,我怎么都算不到
        DCD        &10842060
        DCD        &10842060
        DCD        &10842060
        DCD        &10842060
        DCD        &10842060
        DCD        RamBaseAddr<<10 :OR: RamEndAddr<<20 :OR: &398        ;&10000398
        DCD        &10040398
        DCD        &10040398
        DCD        &10040398
        DCD        &ce2983fd                                
       
        EXPORT        RemapMemory
RemapMemory
        adr        r0, RemapMemPara


1.ldr        r1, =SDRAM_ITF :OR: SFR_BASE<<16 :OR: SRAM_BASE<<6 :OR: CACHE_ALL :OR: CACHE_EN       

;这是怎么运行的理解的?

2. DCD        RomBaseAddr<<10 :OR RomEndAddr<<20 :OR: &60        ;&10840060
;DCD怎么分配 是怎么理解的?
3这个 &10840060 地址怎么计算出来的,我怎么都算不到是这个结果


望版主给予帮助.那个ADS的HELP文档也找不到
发表于 2007-1-13 21:47:41 | 显示全部楼层
这里涉及到关于 S3C4510 内部一些寄存器的配置情况,详细可以参考看看 s3c4510 的 datasheet。
这个bootloader的代码,在启动之后做了一次 remap ,remap前的 Flash 在 0-2M 地址上, sdram 在 16-32M 的地址上; 这个是 remap 之前的设置情况:
RomBaseAddr EQU 0
RomEndAddr EQU &20
RamBaseAddr EQU &100
RamEndAddr EQU &200

remap 后的 sdram 在 0-16M, Flash 在 16-18M 地址上。

;&10840060  这个注释似乎是不对的,是代码原作者的注释,我也没看懂。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 00:26 , Processed in 0.042908 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表