ZHCUCH3A November 2024 – March 2025 F29H850TU , F29H859TU-Q1
解码阶段状态寄存器 (DSTS) 包含有关 CPU的中断和链接状态的信息。下表突出显示了与中断操作相关的字段。软件使用此信息来构建可预测的优先级和安全行为。
| - | RLINK | ISR_PRIORITY | INTS | INTE | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TA3 | TA2 | TA1 | TA0 | - | CLINK | DBGM | - | - | A.ZV | A.C | A.N | A.Z | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
返回链接 (RLINK):这表示执行受保护返回的源的链接。
ISR 优先级 (ISR_PRIORITY):如果 CPU 正在处理中断并且 INT 是 INT 或 RTINT,则中断的优先级反映在此字段中。这是一个 8 位寄存器字段。
中断状态 (INTS):该字段跟踪 CPU 执行的状态,指定执行是在主环路中、在 NMI ISR 中、在 RTINT ISR 中还是在 INT ISR 中。外部 PIPE 模块也使用此字段来跟踪 CPU 的当前阶段,以决定何时可以将下一个就绪的 RTINT 或 INT 中断转发到 CPU。有关 INTS 字段状态值的详细信息,请参阅表 3-3。
| INTS[1] | INTS[0] | CPU 状态 | 注释 |
|---|---|---|---|
| 0 | 0 | 主代码 | 不在任何任务、中断或异常中 |
| 0 | 1 | INT 处理程序 | 在正常的中断服务例程中 |
| 1 | 0 | RTINT 处理程序 | 在实时中断服务例程中 |
| 1 | 1 | NMI 处理程序 | 在 NMI 处理程序例程中 |
INT 使能 (INTE):INT 使能位反映 CPU 是否可以接受 INT 中断。该位需要为 1 才能在 CPU 中接受下一个更高优先级的 INT(这允许 INT 嵌套)。接受 INT 后,该位会自动设置为 0,因此 ISR 代码需要显式将该位设置回 1 以启用 INT 中断嵌套。
调用者链接 (CLINK):CLINK 字段表示发起调用以执行该函数的源的链接。这包括来自 ISR 的执行调用。
为了增强安全性,可以在给定的 ISR(或函数)中检查 CLINK 字段,以确定 CLINK 字段是否与预定义的链接匹配。如果链接不匹配,ISR(或函数)随后会自动退出。