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.
; ]
;----------------------------------------------------------------------------------------
版主问下,它的具体作用是什么?能不能详细讲解一下。。。。。 应该是这个作用吧
:从Nand Flash 启动时CPU 将Nand Flash 的前4K 拷贝到CPU 自带的SRAM
中,然后再跳到SRAM 中运行,而我们的程序大于了4K,那么我们需要在前4K 实现把整个镜像从Nand Flash
搬运到SDRAM 中,并跳到SDRAM 中运行
上面的代码能详细的讲一下吗 谢谢啊 正需要学习一下 :) 谢谢,看看
页:
[1]