zoukankan      html  css  js  c++  java
  • ARM CPU的SVC模式

    关于ARM CPU模式中的SVC

    Arm中CPU的模式

    YCYS0A.png

    【第一方面】

    系统sys模式 VS 管理svc模式

    首先,sys模式和usr模式相比,所用的寄存器组,都是一样的,但是增加了一些访问一些在usr模式下不能访问的资源。

    而svc模式本身就属于特权模式,本身就可以访问那些受控资源,而且,比sys模式还多了些自己模式下的影子寄存器,所以,相对sys模式来说,可以访问资源的能力相同,但是拥有更多的硬件资源。

    所以,从理论上来说,虽然可以设置为sys和svc模式的任一种,但是从uboot方面考虑,其要做的事情是初始化系统相关硬件资源,需要获取尽量多的权限,以方便操作硬件,初始化硬件。

    从uboot的目的是初始化硬件的角度来说,设置为svc模式,更有利于其工作。因此,此处将CPU设置为SVC模式。

    【第二方面】

    uboot作为一个bootloader来说,最终目的是为了启动Linux的kernel,在做好准备工作(即初始化硬件,准备好kernel和rootfs等)跳转到kernel之前,本身就要满足一些条件,其中一个条件,就是要求CPU处于SVC模式的。

    (关于满足哪些条件,详情请参考:

    ARM Linux Kernel Boot Requirements

    http://www.arm.linux.org.uk/developer/booting.php

    或者Linux内核文档:

    kernel_source_rootdocumentationarmooting

    中也是同样的解释:

    “The CPU must be in SVC mode”)

    所以,uboot在最初的初始化阶段,就将CPU设置为SVC模式,也是最合适的。

  • 相关阅读:
    JS字符串去重
    svn回退到某一版本
    WebStorm格式化代码4个空格设置
    DevExpress中 的DataGrid每一行根据其类型显示控件的种类
    各大系统刷新DNS缓存方法
    Kali Linux中前十名的Wifi攻击工具
    CentOS远程执行漏洞
    判断是否移动端的几种方法
    笔记
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/zhaipanger/p/12827496.html
Copyright © 2011-2022 走看看