📄 startup.s
字号:
# 1 "startup.S"@****************************************************@ $Workfile: startup.S for SkyEye simulator $ @ $Revision: 1.0 $@ $Author: Chen Yu, Li Ming $@ $Email: chenyu@hpclab.cs.tsinghua.edu.cn $@ $Email: lmcs00@mails.tsinghua.edu.cn $@ $Date: Dec 17 2002 12:20:30 $@****************************************************.text .align 4 .global begin .type begin,functionbegin: @set the IRQ stack mov r0, #0xd2 @IRQMode msr cpsr_c,r0 @IRQMode ldr sp,=IRQstack_beg mov r0, #211 @ make sure svc mode msr cpsr_c, r0 @ and all irqs disabled adr r5, startup_data ldmia r5, {r5, r8, sp} @ Setup bss and stack , r5 is length 1: mov r4, #0 str r4, [r8],#4 sub r5, r5, #1 cmp r5, #0 bgt 1b @@@ ldr r2, =0x41000000@@@ orr r2, r2, #0x7000 @ FIXME --> 0x41007000 ldr r2, L_AT91_SF_CIDR ldr r2, [r2] @ read processor id str r2, pid_adr mov r2, #89 str r2, mid_adr mov fp, #0 bl init_kernel mov fp, #0 b start_kernel @---------------------------------------------------------------------- @------------------------------------------------------------------------ .align 2 .global AT91_IRQHandler .type AT91_IRQHandler,functionAT91_IRQHandler: @Interrupt Handler Prologue SUB lr, lr, #4 STMFD sp!, {r0-r12, lr} @; push registers and return address MRS r4, spsr @; get spsr STMFD sp!, {r4} @; push spsr @; End Interrupt Handler Prologue @; Call main IRQ service dispatcher BL do_IRQ @; Interrupt Handler Epilogue2: LDMFD sp!, {r4} @; pop spsr MSR spsr_c, r4 @; restore spsr LDMFD sp!, {r0-r12, pc}^ @; restore registers and RFI @; End Interrupt Handler Epilogue @; @; End of IRQHandler @;L_AT91_SF_CIDR: .long 0xfff00000startup_data: .word 4096 .word stack_beg .word bss_begpid_adr: .word proc_idmid_adr: .word mach_id .data .align 2proc_id: .word 0mach_id: .word 0 .align 2 .type stack_beg,object .size stack_beg,4096stack_beg: .word 0 .space 4096stak_end: .word 0 .space 4096IRQstack_beg: .word 0 .space 4096IRQstack_end: .word 0 .space 4096.bss .align 2 .type bss_beg,object .size bss_beg,4096bss_beg: .word 0 .space 4096
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -