打印

ARM工作模式的困惑!

[复制链接]
2849|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
areshan|  楼主 | 2010-12-9 13:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM有7种工作模式,用户模式,系统模式,IRQ模式,FIQ模式,用SWI进入的管理模式,数据中止模式,指令中止模式。
一般用户的程序可以放在用户模式下。SWI管理模式一般可用用户调用SWI指令来进入,在SWI管理模式下,进行操作系统函数的调用。

我在看UCOS移植的文件中,有的在进行系统调用是,用SWI进入管理模式,然后还要用msr cpsr ,r0;等指令是ARM进入系统模式,不知道他们在模式转换的依据时什么??????有没有这样的依据,规定ARM在什么代码性质下要进入什么工作模式??????困惑!

相关帖子

沙发
20070936| | 2010-12-14 10:49 | 只看该作者
(1)处理器复位之后进入管理模式,操作系统内核通常处于管理模式;
(2)处理器访问存储器失败时,进入数据访问终止模块;
(3)当处理器遇到不支持的指令时,进入未定义模式;

使用特权

评论回复
板凳
wwqxs| | 2011-1-17 15:32 | 只看该作者
在进入svc模式下之后,切换到用户模式,是因为要保存通用寄存器里的内容到用户堆栈下,以便下次任务切换的时候不出错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

729

帖子

0

粉丝