ARM处理器工作模式介绍

从今天开始学习ARM异常中断处理相关的知识点;首先学习ARM的工作模式。

ARM处理器共有7种运行模式,如下表所示。

ARM处理器的7种运行模式
处理器模式 描述
用户模式(User) 正常程序执行模式
快速中断模式(FIQ) 用于高速数据传输和通道处理
外部中断模式(IRQ) 用于通常的中断处理
特权模式(Supervisor) 供操作系统使用的一种保护模式
数据访问中止模式(Abort) 用于虚拟存储及存储保护
未定义指令中止模式(Undefined) 用于支持通过软件仿真硬件的协处理器
系统模式(System) 用于运行特权级的操作系统任务

除了用户模式之外的其它6种处理器模式称为特权模式。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除系统模式外,其他5种特权模式又称为异常模式。

处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下。这时,应用程序不能够访问一些受操作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式的切换。这种体系结构可以使整个操作系统控制整个系统的资源。

当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样可以保证在进入异常模式时,用户模式下的寄存器不被破坏。

系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所用的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组,而不是使用异常模式下相应的寄存器组,这样就可以保证当异常中断发生时任务的状态不被破坏。

怎么让CPU工作于某种模式,可以通过设置CPU的CPSR寄存器。CPSR寄存器格式如下:

ARM处理器工作模式介绍_第1张图片

各个位的功能介绍如下:

M0~M4:被称为模式位;可以通过这5位来设置CPU的工作模式;

T(bit5):用来表示操作状态;如果是1表示工作在Thumb状态,如果有0表示工作在ARM状态;

F(bit6):如果设置为1,则表示禁止FIQ中断;

I(bit7):如果设置为1,则表示禁止IRQ中断;

V(bit28):对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出;

C(bit29):在加法指令中,当结果产生了进位,则C=1,表示无符号数运算发生上溢出;其他情况C=0;在减法指令中,当运算发生借位,则C=0;表示无符号数运算发生下溢出;其他情况C=1;

Z(bit30):当Z=1时表示运算结果为零;Z=0时表示运算结果不为零;

N(bit31):当N=1时表示运算的结果为负数;当N=0时表示结果为正数或零。

本文完毕!

你可能感兴趣的:(tiny4412开发板学习记录)