ARM处理器模式

ARM 153浏览

CPSR寄存器

ARM V4的CPSR寄存器(和保存它的SPSR寄存器)中的位分配如下图所示。

点击看大图 

处理器模式决定了哪些寄存器是活动的以及对cpsr访问权。
处理器模式要么是特权模式,要么是非特权模式。
特权模式允许对cpsr的完全读/写访问;
与些相反,非特权模式只允许对cpsr的控制域进行读访问,但允许对条件标志的读/写访问。
具体共有7种处理器模式。
6种特权模式(前5种也称为异常处理模式):中止(abort)模式、中断(interrupt request)、快速中断

(fast interrupt request)模式、管理(supervior)模式(有的也称超级用户模式)、未定义(undefined)

模式、系统(system)模式。
1种非特权模式------用户(user)模式。
当处理器访问存储器失败时,进入数据访问中止模式(abort);
中断模式和快速中断模式分别对ARM处理器两种不同级别的中断作出响应;
处理器复位以后,进入管理模式,操作系统内核也通常处于这种模式;
系统模式是一种特殊的用户模式,允许对cpsr的完全读/写访问;
当处理器遇到没有定义的指令或处理器不支持该指令时,进入未定义模式;
用户模式运行应用程序。

摘自<ARM嵌入式系统开发>P18

Table 2.1. ARM 处理器模式

处理器模式 体系结构 模式编号
用户 全部 0b10000
FIQ - 快速中断请求 全部 0b10001
IRQ - 中断请求 全部 0b10010
超级用户 全部 0b10011
中止 全部 0b10111
未定义 全部 0b11011
系统 ARMv4 及更高版本 0b11111
监控 仅限安全扩展 0b10110



 

除用户模式之外,所有其他模式统称为特权 模式。 它们具有对系统资源的完全访问权限,并可随意更改模式。

需要任务保护的应用程序通常在用户模式下执行。 有些嵌入式应用程序可能完全运行在超级用户模式或系统模式下。

进入除用户模式之外的模式是为了处理异常或访问特许资源。

摘自ARM公司,见:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ic/Chdddhea.html