ARM_Cortex-M3内核结构(7)

发布时间:2021-06-07

中断屏蔽寄存器:分为三组,分别是 PRIMASK、FAULTMASK、BASEPRI。

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

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

BASEPRI 寄存器用来屏蔽优先级等于和小于某一个中断数值的寄存器。 控制寄存器:CONTROL 有两个作用,其一用于定义处理器特权级别,其二用于选择堆栈指针,如表 3.3 所示。

表 2.3 CONTROL 寄存器

CONTROL[0]:异常情况下,处理器总是处于特权模式,CONTROL[0]位总是为 0;在线程模式情况下 (非异常情况),处理器可以工作在特权级也可工作在用户级,该位可为 0 或 1。特权级下所有的资源 都可以访问,而用户级下被限制的资源不能访问,比如 MPU 被限制的资源。 CONTROL[1]:为 0 时,只使用 MSP,此时用户程序和异常共享同一个堆栈,处理器复位后默认的也 是该模式。为 1 时,用户应用程序使用进程堆栈 PSP,而中断任然得使用主堆栈 MSP。这种双堆栈机制, 特别适合在带有 OS(操作系统)的环境下使用,只要 OS 内核在特权级下执行,而用户应用程序在用户 模式下执行,就可很好的将代码隔离互不影响。

2.3 处理器操作模式

ARM Cortex-M3支持2个模式和两个特权等级。如图2.4所示,在嵌入式系统应用程序中,程序代

码 涉及异常服务程序代码和非异常服务程序代码,这些代码可以工作在处理器特权级也可以工作在用户级 级,但有区别。当处理器处在线程模式下时,既可以使用特权级,也可以使用用户级;另一方面,handler 模式总是特权级的。在复位后,处理器进入线程模式+特权级。

ARM_Cortex-M3内核结构(7).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219