ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
事件管理寄存器组包含 6 个标准寄存器:RIS、IMASK、MIS、ISET、ICLR 和 IIDX,如表 7-2 所示。这些事件寄存器相互连接,如图 7-6 所示。
生成事件的外设将包含一个或多个连接到原始中断状态 (RIS) 寄存器的中断源信号。软件可以随时轮询 RIS 以检查原始中断状态。软件也可以通过写入 ICLR 寄存器中的相应位来清除 RIS 寄存器中的挂起中断。RIS 和 IMASK 寄存器通过 MIS 寄存器(屏蔽中断状态)中的逐位 AND 功能组合在一起。要取消屏蔽中断,请设置 IMASK 寄存器中的相应位。取消屏蔽后,RIS 和 MIS 寄存器将指示挂起的中断,并生成一个事件。IIDX 寄存器也将使用最高优先级挂起中断的索引进行更新。
如果 CPU 中断 (CPU_INT) 具有 CPU 中断事件路由,则读取 IIDX 寄存器将清除 RIS 和 MIS 寄存器中的最高优先级挂起中断,并将最高优先级挂起中断的索引返回给应用软件。
如果发生硬件事件 DMA 触发路由 (DMA_TRIGx) 或通用事件路由 (GEN_EVENTx),硬件四次握手将向 ICLR 机制发送 ACK 信号,该机制将清除 RIS 和 MIS 寄存器中的挂起中断。
| 寄存器 | 说明 | 读/写 | 功能 |
|---|---|---|---|
| RIS | 原始中断状态 | R | 指示当前挂起的中断状态,每个中断条件提供一个位。如果中断条件不再存在,则写入 ICLR 将清除 RIS 寄存器中的相应位。 |
| IMASK | 中断屏蔽 | RW | 由应用软件用来配置哪些中断条件传播到一个事件中,每个中断条件提供一个位。 |
| MIS | 屏蔽中断状态 | R | 向软件和硬件指示当前挂起的屏蔽中断状态,每个中断条件提供一个位。MIS 是 RIS 和 IMASK 寄存器的逐位 AND。如果中断条件不再存在,则写入 ICLR 将清除 RIS 寄存器中的相应位。如果 RIS 被清除,MIS 寄存器中的相应位也会被自动清除。 |
| ISET | 软件中断设置控制 | W | 由应用软件用来强制设置用于诊断的中断条件。写入 ISET 将设置 RIS 寄存器中的相应位。如果在 IMASK 中启用了中断条件,则也会设置 MIS 寄存器中的相应位。向 ISET 中某个位的位置写入“1”会设置相应的中断状态。 |
| ICLR | 软件中断清除控制 | W | 由应用软件用来清除 RIS 中的挂起中断状态。向 ICLR 中某个位的位置写入“1”会清除相应的中断状态。如果在 IMASK 中启用了中断,则在 RIS 清除时,MIS 中相应位的位置也会自动清除。如果中断条件仍然存在,清除状态没有任何影响,RIS 将保持设置。 |
| IIDX | 挂起中断索引 | R | 由应用软件用来读取最高优先级的挂起中断,同时清除 RIS 和 MIS 中最高优先级的中断状态。如果没有未屏蔽的中断处于挂起状态 (MIS=0),那么读取 IIDX 会返回 0,否则它返回一个索引值,指示最高优先级的挂起中断。 |