xuehui869 发表于 2009-9-19 19:44:41

TQ2440启动程序详解

请教版主:TQ2440开发板的裸机程序TQ2440_Test 在2440init.s中相比通用的启动程序加了下面的:
;===========================================================
       
        ldr        r0, =BWSCON
        ldr        r0,
        ands        r0, r0, #6                ;OM != 0, NOR FLash boot
        bne        copy_proc_beg                ;do not read nand flash
        adr        r0, ResetEntry                ;OM == 0, NAND FLash boot
        cmp        r0, #0                                ;if use Multi-ice,
        bne        copy_proc_beg                ;do not read nand flash for boot
        ;nop
;===========================================================
nand_boot_beg
        [ {TRUE}
                bl RdNF2SDRAM
        ]

        ldr        pc, =copy_proc_beg
;===========================================================
copy_proc_beg
        adr        r0, ResetEntry
        ldr        r2, BaseOfROM
        cmp        r0, r2
        ldreq        r0, TopOfROM
        beq        InitRam       
        ldr r3, TopOfROM
0       
        ldmia        r0!, {r4-r7}
        stmia        r2!, {r4-r7}
        cmp        r2, r3
        bcc        %B0
       
        sub        r2, r2, r3
        sub        r0, r0, r2                               
               
InitRam       
        ldr        r2, BaseOfBSS
        ldr        r3, BaseOfZero       
0
        cmp        r2, r3
        ldrcc        r1, , #4
        strcc        r1, , #4
        bcc        %B0       

        mov        r0,        #0
        ldr        r3,        EndOfBSS
1       
        cmp        r2,        r3
        strcc        r0, , #4
        bcc        %B1
       
        ldr        pc, =%F2                ;goto compiler address
2
       
;        [ CLKDIV_VAL>1                 ; means Fclk:Hclk is not 1:1.
;        bl        MMU_SetAsyncBusMode                        
;        |
;        bl MMU_SetFastBusMode        ; default value.
;        ]
;----------------------------------------------------------------------------------------
版主问下,它的具体作用是什么?能不能详细讲解一下。。。。。

xuehui869 发表于 2009-9-19 19:56:03

应该是这个作用吧
:从Nand Flash 启动时CPU 将Nand Flash 的前4K 拷贝到CPU 自带的SRAM
中,然后再跳到SRAM 中运行,而我们的程序大于了4K,那么我们需要在前4K 实现把整个镜像从Nand Flash
搬运到SDRAM 中,并跳到SDRAM 中运行

上面的代码能详细的讲一下吗

pzxsoso 发表于 2011-3-10 14:52:07

谢谢啊 正需要学习一下

天嵌_support1 发表于 2011-3-10 15:09:56

:)

大吓 发表于 2011-9-6 22:39:20

谢谢,看看
页: [1]
查看完整版本: TQ2440启动程序详解