2.2.2 特殊功能寄存器

更新于 2026年10月10日 版权声明
2.2.2 特殊功能寄存器

特殊功能寄存器分为程序状态寄存器、中断屏蔽寄存器和控制寄存器3类。

1.程序状态寄存器

程序状态寄存器(xProgram Status Register,xPSR)的处理器状态可分为3类:应用状态寄存器(Application Program Status Register,APSR)、中断状态寄存器(Interrupt Program Status Register,IPSR)和执行状态寄存器(Enable Program Status Register,EPSR)。它们可组合起来构成一个32位的寄存器,统称xPSR,如表2.1所示。

表2.1 xPSR

图示

xPSR各位的功能如表2.2所示。

表2.2 xPSR各位的功能

图示

2.中断屏蔽寄存器

中断屏蔽寄存器分为3组,分别是PRIMASK、FAULTMASK、BASEPRI。(https://www.daowen.com)

PRIMASK寄存器为片上外设总中断开关,该寄存器只有位0有效。当该位为0时,响应所有外设中断;当该位为1时,屏蔽所有片上外设中断。

FAULTMASK寄存器管理系统错误的总开关,该寄存器中位0有效。当该位为0时,响应所有的异常;当该位为1时,屏蔽所有的异常。

BASEPRI寄存器用来屏蔽优先级等于和小于某一个中断数值的寄存器。

3.控制寄存器

控制(CONTROL)寄存器有两个作用,其一用于配置处理器特权模式,其二用于选择堆栈指针,如表2.3所示。

表2.3 CONTROL寄存器功能表

图示

CONTROL[0]:在异常情况下,处理器总是处于特权模式,该位总是为0;在线程模式情况下(非异常情况),处理器可以工作在特权模式也可工作在用户模式,该位可为0或1。特权模式下所有的资源都可以访问,而用户模式下被限制的资源不能访问。

CONTROL[1]:该位为0时,只使用MSP,此时用户程序和异常共享同一个堆栈,处理器复位后默认为该模式;该位为1时,用户应用程序使用PSP,而中断仍然得使用MSP。这种双堆栈机制,特别适合在带有操作系统的环境下使用,只要操作系统内核在特权模式下执行,而用户应用程序在用户模式下执行,就可很好地将代码隔离,互不影响。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)