继续接着上一篇的设置中断向量表
.text
.global _start
_start:
b rest
ldr pc ,
_undefine_instruction
ldr pc , _software_interrrupt
ldr pc , _prefetch_aport
ldr pc , _data_abort
ldr pc , _not_use
ldr pc , _irq
ldr pc , _fiq
_undefine_instruction: .word undefine_instruction
_software_interrrupt: .word software_interrrupt
_prefetch_aport: .word prefetch_aport
_data_abort:.word data_abort
_not_use: .word not_use
_irq: .word irq
_fiq: .word fiq
undefine_instruction:
nop
software_interrrupt:
nop
prefetch_aport:
nop
data_abort:
nop
not_use:
nop
irq:
nop
fiq:
nop
rest:
bl set_svc
set_svc:
mrs r0 , cpsr//CPSR寄存器不能直接操作,cpsr->r0
bic r0 , r0 ,
#0x1f//低五位置0
orr r0 , r0 , #0x13//低五位置1。有些uboot在这里是0xd3->0b110 10011 其中高三位是把FIQ和IRQ禁止了 低五位是设置SVC模式,这里只是设置了SVC模式,FIQ和IRQ在其他的地方禁止
msr cpsr , r0
mov pc , lr