主题 : 请问cpu/arm920t/start.S的这段代码是干什么用的?请高手指点 复制链接 | 浏览器收藏 | 打印
Happy your life, healthy on the road...
级别: 新手上路
UID: 3725
精华: 0
发帖: 25
金钱: 260 两
威望: 260 点
综合积分: 50 分
注册时间: 2009-02-04
最后登录: 2009-05-06
楼主  发表于: 2009-03-09 14:27

 请问cpu/arm920t/start.S的这段代码是干什么用的?请高手指点

在友善之臂mini2440提供的u-boot-1.1.6-FA24x0的cpu/arm920t/start.S里面,第439行有这么一段代码,它作什么用,在什么地方被使用的?

@ mike.arm9, 2006.06.24
.globl Launch
    .align    4
Launch:    
    mov r7, r0
    @ diable interrupt
    @ disable watch dog timer
    mov    r1, #0x53000000
    mov    r2, #0x0
    str    r2, [r1]

    ldr r1,=INTMSK
    ldr r2,=0xffffffff  @ all interrupt disable
    str r2,[r1]

    ldr r1,=INTSUBMSK
    ldr r2,=0x7ff       @ all sub interrupt disable
    str r2,[r1]

    ldr     r1, = INTMOD
    mov r2, #0x0        @ set all interrupt as IRQ (not FIQ)
    str     r2, [r1]

    @
    mov    ip, #0
    mcr    p15, 0, ip, c13, c0, 0      @    /* zero PID */
    mcr    p15, 0, ip, c7, c7, 0       @    /* invalidate I,D caches */
    mcr    p15, 0, ip, c7, c10, 4      @    /* drain write buffer */
    mcr    p15, 0, ip, c8, c7, 0       @    /* invalidate I,D TLBs */
    mrc    p15, 0, ip, c1, c0, 0       @    /* get control register */
    bic    ip, ip, #0x0001             @    /* disable MMU */
    mcr    p15, 0, ip, c1, c0, 0       @    /* write control register */

    @ MMU_EnableICache
    @mrc p15,0,r1,c1,c0,0
    @orr r1,r1,#(1<<12)
    @mcr p15,0,r1,c1,c0,0

#ifdef CONFIG_SURPORT_WINCE
    bl Wince_Port_Init
#endif

    @ clear SDRAM: the end of free mem(has wince on it now) to the end of SDRAM
    ldr     r3, FREE_RAM_END
    ldr     r4, =PHYS_SDRAM_1+PHYS_SDRAM_1_SIZE    @ must clear all the memory unused to zero
    mov     r5, #0

    ldr     r1, _armboot_start
    ldr     r2, =On_Steppingstone
    sub     r2, r2, r1
    mov     pc, r2
On_Steppingstone:
2:  stmia   r3!, {r5}
    cmp     r3, r4
    bne     2b

    @ set sp = 0 on sys mode
    mov sp, #0

    @ add by mike.arm9 2006.06.26, switch to SVC mode
    msr    cpsr_c,    #0xdf    @ set the I-bit = 1, diable the IRQ interrupt
    msr    cpsr_c,    #0xd3    @ set the I-bit = 1, diable the IRQ interrupt
    ldr sp, =0x31ff5800    
    
    nop
    nop
    nop
    nop

    mov     pc, r7  @ Jump to PhysicalAddress
    nop
    mov pc, lr
[ 此帖被alfie2009在2009-03-17 14:44重新编辑 ]
Happy your life, healthy on the road...
级别: 新手上路
UID: 3725
精华: 0
发帖: 25
金钱: 260 两
威望: 260 点
综合积分: 50 分
注册时间: 2009-02-04
最后登录: 2009-05-06
1楼  发表于: 2009-03-13 12:48
我没有搜索到其他调用“Launch”的文件呀。

高手指点一下吧?
[ 此帖被alfie2009在2009-03-17 14:43重新编辑 ]
Happy your life, healthy on the road...
级别: 新手上路
UID: 3725
精华: 0
发帖: 25
金钱: 260 两
威望: 260 点
综合积分: 50 分
注册时间: 2009-02-04
最后登录: 2009-05-06
2楼  发表于: 2009-03-17 14:45
继续顶~~~