bootloader为何开始要将CPU设置为SVC模式
来源:互联网 发布:电路图制作软件cad 编辑:程序博客网 时间:2024/06/05 00:19
另外,7种模式中,除用户usr模式外,其它模式均为特权模式。
对于为何此处是svc模式,而不是其他某种格式,其原因,可以从两方面来看:
我们先简单的来分析一下那7种模式:
- 中止abt和未定义und模式
首先可以排除的是,中止abt和未定义und模式,那都是不太正常的模式,此处程序是正常运行的,所以不应该设置CPU为其中任何一种模式,所以可以排除。
- 快中断fiq和中断irq模式
其次,对于快中断fiq和中断irq来说,此处uboot初始化的时候,也还没啥中断要处理和能够处理,而且即使是注册了终端服务程序后,能够处理中断,那么这两种模式,也是自动切换过去的,所以,此处也不应该设置为其中任何一种模式。
- 用户usr模式
虽然从理论上来说,可以设置CPU为用户usr模式,但是由于此模式无法直接访问很多的硬件资源,而uboot初始化,就必须要去访问这类资源,所以此处可以排除,不能设置为用户usr模式。
- 系统sys模式 vs 管理svc模式
首先,sys模式和usr模式相比,所用的寄存器组,都是一样的,但是增加了一些访问一些在usr模式下不能访问的资源。
而svc模式本身就属于特权模式,本身就可以访问那些受控资源,而且,比sys模式还多了些自己模式下的影子寄存器,所以,相对sys模式来说,可以访问资源的能力相同,但是拥有更多的硬件资源。
所以,从理论上来说,虽然可以设置为sys和svc模式的任一种,但是从uboot方面考虑,其要做的事情是初始化系统相关硬件资源,需要获取尽量多的权限,以方便操作硬件,初始化硬件。
从uboot的目的是初始化硬件的角度来说,设置为svc模式,更有利于其工作。
因此,此处将CPU设置为SVC模式。
- 中止abt和未定义und模式
0 0
- bootloader为何开始要将CPU设置为SVC模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
- uboot初始化中为什么要设置CPU为SVC模式
- uboot中为什么设置CPU为SVC模式????????
- 设置SVC模式
- 设置SVC模式
- 为何将INF设置为0x3f3f3f3f
- u-boot设置SVC模式
- 二十四.SVC模式设置
- 设置tiny6410的svc模式
- 为何程序员喜欢将INF设置为0x3f3f3f3f?
- 【转载】为何程序员喜欢将INF设置为0x3f3f3f3f?
- Linux学习笔记六
- Bzoj2260 商店购物 & 4349 最小树形图
- 51nod-1441 士兵的数字游戏
- HTML+CSS3前端开发幽灵按钮
- 简单到爆的涂鸦板
- bootloader为何开始要将CPU设置为SVC模式
- ubuntu下如何安装与卸载软件总结
- C语言预处理
- 管程,进程及线程之间的区别
- GUI自适应矩阵
- VM上Centos安装oracle
- gitlab-ce_8取消邮箱验证
- JSp+JDBC实现用户登录程序
- python3 调用百度号码归属地查询接口显示中文结果