美文网首页嵌入式单片机学习
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