美文网首页嵌入式单片机学习
uboot-step 2 设置cpu为svc模式

uboot-step 2 设置cpu为svc模式

作者: 2625K | 来源:发表于2016-08-03 22:24 被阅读139次

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

相关文章

网友评论

    本文标题:uboot-step 2 设置cpu为svc模式

    本文链接:https://www.haomeiwen.com/subject/acccsttx.html