02.07.2013 Views

Uboot中start.S源码的指令级的详尽解析

Uboot中start.S源码的指令级的详尽解析

Uboot中start.S源码的指令级的详尽解析

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ad_save_user_regs<br />

bl do_data_abort<br />

.align 5<br />

not_used:<br />

get_bad_stack<br />

bad_save_user_regs<br />

bl do_not_used<br />

以上几个宏,和前面的do_undefined_instruction是类似的,就不多说了。<br />

@ HJ<br />

.globl Launch<br />

.align 4<br />

Launch:<br />

mov r7, r0<br />

@ diable interrupt<br />

@ disable watch dog timer<br />

mov r1, #0x53000000<br />

mov r2, #0x0<br />

str r2, [r1]<br />

ldr r1,=INTMSK<br />

ldr r2,=0xffffffff @ all interrupt disable<br />

str r2,[r1]<br />

ldr r1,=INTSUBMSK<br />

ldr r2,=0x7ff @ all sub interrupt disable<br />

str r2,[r1]<br />

ldr r1, = INTMOD<br />

mov r2, #0x0 @ set all interrupt as IRQ (not FIQ)<br />

str r2, [r1]<br />

@<br />

mov ip, #0<br />

mcr p15, 0, ip, c13, c0, 0 @ /* zero PID */<br />

mcr p15, 0, ip, c7, c7, 0 @ /* invalidate I,D caches */<br />

mcr p15, 0, ip, c7, c10, 4 @ /* drain write buffer */<br />

mcr p15, 0, ip, c8, c7, 0 @ /* invalidate I,D TLBs */<br />

mrc p15, 0, ip, c1, c0, 0 @ /* get control register */<br />

bic ip, ip, #0x0001 @ /* disable MMU */<br />

mcr p15, 0, ip, c1, c0, 0 @ /* write control register */

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!