uboot-step 2 设置cpu为svc模式
什么是svc模式
首先,得说下ARM的工作模式,如图所示,处理器一般运行在user模式,当发生异常时,便会进入相应的模式去执行,svc模式即supervisor,管理模式,一般情况下是操作系统所运行的模式 此模式下处理器有权限去访问一些受保护的寄存器,因此我们需要将处理器设置为此模式来进行一些必要的初始化。
arm mode.png
如何修改到svc模式
修改处理器的工作模式需要更改处理器的状态寄存器cpsr的相应位,如下图所示,cpsr的[0-4]位为mode位,当其值为10011=0x13时,即可设置为svc模式
cpsr.png cpsr set.png
代码实现
set_svc:
mrs r0 ,cpsr
bic r0 ,#0x1f
orr r0 ,#0xd3 @理论上M[4-0]位为10011 0x13即可,此处为1101 0011 多了I,F,T:关闭了IRQ和FIQ,处理器工作在arm模式
msr cpsr,r0
mov pc,lr
此去经年
zhaiyk@sina.cn
August 1, 2016
网友评论