Cortex-M 系列处理器中断屏蔽寄存器与向量表详解
1. 中断屏蔽寄存器
1.1 PRIMASK 寄存器
在许多应用场景中,为了执行对时间要求严格的任务,可能需要暂时禁用所有外设中断。这时可以使用 PRIMASK 寄存器,该寄存器仅在特权状态下可访问。它用于禁用除 NMI 和 HardFault 之外的所有异常(将有效优先级级别设置为 0x0)。
若 AIRCR.PRIS 为 1,非安全的 PRIMASK 可用于屏蔽:
- 优先级级别为 0x00 至 0xFF 的所有非安全中断(从安全世界查看时,有效级别为 0x80 至 0xFF)。
- 优先级级别为 0x80 至 0xFF 的安全中断。
| 寄存器名称 | 宽度(位) | 描述 |
|---|---|---|
| PRIMASK_S(安全 PRIMASK) | 1 | 设置为 1 时,将当前优先级级别设置为 0,即所有可配置异常(级别 0 至 0xFF)被屏蔽,但 NMI 和 HardFault 仍可触发。 |
| PRIMASK_NS(非安全 PRIMASK) | 1 | 当设置为 1 且 AIRCR.PRIS 为 0 时,将当前优先级级别设置为 0,所有可配置异常(级别 0 至 0xFF)被屏蔽,NMI 和 HardFault 仍可触发;当设置为 1 且 AIRCR.PRIS |
超级会员免费看
订阅专栏 解锁全文
2045

被折叠的 条评论
为什么被折叠?



