uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
在看Uboot的start.S文件时候,发现其最开始初始化系统,做的第一件事情,就是将CPU设置为SVC模式,但是S3C2440的CPU的core是ARM920T,其有7种模式,为何非要设置为SVC模式,而不是设置为其他模式呢?对此,经过一些求证,得出如下原因:
首先,先要了解ARM的CPU的7种模式是哪些:
http://www.docin.com/p-73665362.html
图表 22 ARM中CPU的模式
处理器模式 | 说明 | 备注 |
用户 (usr) | 正常程序工作模式 | 此模式下程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。 |
系统 (sys) | 用于支持操作系统的特权任务等 | 与用户模式类似,但具有可以直接切换到其它模式等特权 |
快中断 (fiq) | 支持高速数据传输及通道处理 | FIQ异常响应时进入此模式 |
中断 (irq) | 用于通用中断处理 | IRQ异常响应时进入此模式 |
管理 (svc) | 操作系统保护代码 | 系统复位和软件中断响应时进入此模式 |
中止 (abt) | 用于支持虚拟内存和/或存储器保护 | 在ARM7TDMI没有大用处 |
未定义 (und) | 支持硬件协处理器的软件仿真 | 未定义指令异常响应时进入此模式 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
呵呵学习咯
分析的不错
回帖是一种美德,谢谢楼主的分享,顶上先
谢谢LZ分享