请教各位大侠LPC3250从NAND FLASH启动的问题。
LPC3250上电启动后,片内IROM固化的程序把NAND FLASH里的kickstart程序读到IRAM运行。那么IRAM运行起来后,把自己copy到IRAM的高端空间,然后怎么跳转到位于高端IRAM的kickstart程序继续运行?我看程序,没有找到跳转这一段。具体程序如下,请大家帮忙看看,谢了。
arm926ejs_reset
; Put the processor is in system mode with interrupts disabled
MOV r0, #MODE_SVC:OR:I_MASK:OR:F_MASK
MSR cpsr_cxsf, r0
; Ensure the MMU is disabled
MRC p15, 0, r1, c1, c0, 0
LDR r2,=MMU_DISABLE_MASK
AND r1, r1, r2
MCR p15, 0, r1, c1, c0, 0
clearzi_exit
; Enter SVC mode and setup the SVC stack pointer.
; This is the mode for runtime initialization.
MOV r1, #I_MASK:OR:F_MASK ; No Interrupts
ORR r0, r1, #MODE_SVC
MSR cpsr_cxsf, r0
LDR r11, =END_OF_IRAM
MOV sp, r11
; Relocate 15.5K of image
LDR r0, =END_OF_IRAM
LDR r1, =0x8000
SUB r0, r0, r1
MOV r8, r0
MOV r2, #0
LDR r1, =0x4000
loopmove
LDR r3, [r2], #4
STR r3, [r0], #4
SUB r1, r1, #4
CMP r1, #0
BNE loopmove
; Get address of application to execute
LDR r0, =c_entry
BX r0
END |