ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
表 3-106 列出了 CPU_SCS 寄存器的存储器映射寄存器。表 3-106中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。
复杂的位访问类型经过编码可适应小型表单元。表 3-107 展示了适用于此部分中访问类型的代码。
| 访问类型 | 代码 | 说明 |
|---|---|---|
| 读取类型 | ||
| R | R | 读取 |
| 写入类型 | ||
| W | W | 写入 |
| W1C | W 1C | 写入 1 以清零 |
| 复位或默认值 | ||
| -n | 复位后的值或默认值 | |
图 3-72 展示了 ICTR,表 3-108 中对此进行了介绍。
返回到汇总表。
中断控制类型
读取该寄存器可查看 NVIC 支持的中断线数量。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | INTLINESNUM | ||||||
| R-0h | R-1h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 2-0 | INTLINESNUM | R | 1h | 以 32 为一组的中断线总数量。 0:0 至 32 1:33 至 64 2:65 至 96 3:97 至 128 4:129 至 160 5:161 至 192 6:193 至 224 7:225...256 |
图 3-73 展示了 ACTLR,表 3-109 中对此进行了介绍。
返回到汇总表。
辅助控制
该寄存器用于禁用处理器内部的某些功能
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | DISOOFP | DISFPCA | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DISFOLD | DISDEFWBUF | DISMCYCINT | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-10 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 9 | DISOOFP | R/W | 0h | 禁用浮点指令相对于整数指令错序完成。 |
| 8 | DISFPCA | R/W | 0h | 禁用 CONTROL.FPCA 的自动更新 |
| 7-3 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 2 | DISFOLD | R/W | 0h | 禁用 IT 指令的折叠。 |
| 1 | DISDEFWBUF | R/W | 0h | 在默认存储器映射访问期间禁用写缓冲区使用。这会使所有总线故障都成为精确总线故障,但会降低处理器的性能,因为存储器的存储操作必须在执行下一条指令之前完成。 |
| 0 | DISMCYCINT | R/W | 0h | 禁用多周期指令的中断。这会增加处理器的中断延迟,因为 LDM/STM 会在中断压栈发生之前完成。 |
图 3-74 展示了 STCSR,表 3-110 中对此进行了介绍。
返回到汇总表。
SysTick 控制和状态
该寄存器可启用 SysTick 功能并返回与 SysTick 相关的状态标志。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | COUNTFLAG | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CLKSOURCE | TICKINT | ENABLE | ||||
| R-0h | R-1h | R/W-0h | R/W-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-17 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 16 | COUNTFLAG | R | 0h | 如果自上次读取以来计时器已计时到 0,则返回 1。在应用程序读取 SysTick 控制和状态寄存器的任何部分时清除。如果调试器使用 DAP 读取该位,则仅在 **AHB-AP** 控制寄存器中的 MasterType 位设置为 0 时,会在读取时清除该位。否则,调试器读取不会更改 COUNTFLAG。 |
| 15-3 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 2 | CLKSOURCE | R | 1h | 时钟源: 0:外部基准时钟。 1:内核时钟 该器件不支持外部时钟。对该字段的写入将被忽略。 |
| 1 | TICKINT | R/W | 0h | 0:倒数到零不会使 SysTick 处理程序挂起。软件可以使用 COUNTFLAG 来确定 SysTick 处理程序是否已倒数到零。 1:倒数到零会使 SysTick 处理程序挂起。 |
| 0 | ENABLE | R/W | 0h | 使能 SysTick 计数器 0:计数器禁用 1:计数器以周期性触发方式运行。也就是说,计数器使用重载值寄存器 STRVR.RELOAD 进行加载,然后开始倒数。达到 0 时,会将 COUNTFLAG 设置为 1,并根据 TICKINT 选择是否挂起 SysTick 处理程序。然后再次加载 STRVR.RELOAD,并开始倒数。 |
图 3-75 展示了 STRVR,表 3-111 中对此进行了介绍。
返回到汇总表。
SysTick 重载值
该寄存器用于指定在计数器达到 0 时加载到当前值寄存器 STCVR.CURRENT 中的起始值。可以是 1 到 0x00FFFFFF 之间的任何值。起始值可以为 0,但无效,因为从 1 倒数到 0 会激活 SysTick 中断和 STCSR.COUNTFLAG。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 重新加载 | ||||||||||||||||||||||||||||||
| R/W-0h | R/W-X | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 23-0 | 重新加载 | R/W | X | 计数器达到 0 时加载到 SysTick 当前值寄存器 STCVR.CURRENT 中的值。 |
图 3-76 展示了 STCVR,表 3-112 中对此进行了介绍。
返回到汇总表。
SysTick 当前值
读取该寄存器会返回 SysTick 计数器的当前值。写入该寄存器会复位 SysTick 计数器(以及 STCSR.COUNTFLAG)。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 电流 | ||||||||||||||||||||||||||||||
| R/W-0h | R/W-X | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 23-0 | 电流 | R/W | X | 访问寄存器时的当前值。不提供读-改-写保护,因此请谨慎修改。写入任何值都会将该寄存器清零。清除该寄存器的同时,也会清除 STCSR.COUNTFLAG。 |
图 3-77 展示了 STCR,表 3-113 中对此进行了介绍。
返回到汇总表。
SysTick 校准值
用于使软件能够使用除法和乘法扩展到任何所需的速度。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| NOREF | SKEW | RESERVED | |||||
| R-1h | R-1h | R-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TENMS | |||||||
| R-00075300h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| TENMS | |||||||
| R-00075300h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TENMS | |||||||
| R-00075300h | |||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | NOREF | R | 1h | 读为 1。表示未提供独立的基准时钟。 |
| 30 | SKEW | R | 1h | 读为 1。由于时钟频率的原因,校准值并非恰好为 10ms。这可能会影响其作为软件实时时钟的适用性。 |
| 29-24 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 23-0 | TENMS | R | 00075300h | 用于 10ms (100Hz) 时序的可选重载值,受系统时钟偏斜错误的影响。仅当内核时钟为 48MHz 时,读取的值才有效。 |
图 3-78 展示了 NVIC_ISER0,表 3-114 对其进行了介绍。
返回到汇总表。
Irq 0 至 31 设置使能
该寄存器用于启用中断并确定当前哪些中断处于启用状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| SETENA31 | SETENA30 | SETENA29 | SETENA28 | SETENA27 | SETENA26 | SETENA25 | SETENA24 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SETENA23 | SETENA22 | SETENA21 | SETENA20 | SETENA19 | SETENA18 | SETENA17 | SETENA16 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SETENA15 | SETENA14 | SETENA13 | SETENA12 | SETENA11 | SETENA10 | SETENA9 | SETENA8 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SETENA7 | SETENA6 | SETENA5 | SETENA4 | SETENA3 | SETENA2 | SETENA1 | SETENA0 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | SETENA31 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前使能值。 |
| 30 | SETENA30 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前使能值。 |
| 29 | SETENA29 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前使能值。 |
| 28 | SETENA28 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前使能值。 |
| 27 | SETENA27 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前使能值。 |
| 26 | SETENA26 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前使能值。 |
| 25 | SETENA25 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前使能值。 |
| 24 | SETENA24 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前使能值。 |
| 23 | SETENA23 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前使能值。 |
| 22 | SETENA22 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前使能值。 |
| 21 | SETENA21 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前使能值。 |
| 20 | SETENA20 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前使能值。 |
| 19 | SETENA19 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前使能值。 |
| 18 | SETENA18 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前使能值。 |
| 17 | SETENA17 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前使能值。 |
| 16 | SETENA16 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前使能值。 |
| 15 | SETENA15 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前使能值。 |
| 14 | SETENA14 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前使能值。 |
| 13 | SETENA13 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前使能值。 |
| 12 | SETENA12 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前使能值。 |
| 11 | SETENA11 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前使能值。 |
| 10 | SETENA10 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前使能值。 |
| 9 | SETENA9 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前使能值。 |
| 8 | SETENA8 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前使能值。 |
| 7 | SETENA7 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前使能值。 |
| 6 | SETENA6 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前使能值。 |
| 5 | SETENA5 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前使能值。 |
| 4 | SETENA4 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前使能值。 |
| 3 | SETENA3 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前使能值。 |
| 2 | SETENA2 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前使能值。 |
| 1 | SETENA1 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前使能值。 |
| 0 | SETENA0 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前使能值。 |
图 3-79 展示了 NVIC_ISER1,表 3-115 对其进行了介绍。
返回到汇总表。
Irq 32 至 63 设置使能
该寄存器用于启用中断并确定当前哪些中断处于启用状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SETENA37 | SETENA36 | SETENA35 | SETENA34 | SETENA33 | SETENA32 | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5 | SETENA37 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前使能值。 |
| 4 | SETENA36 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前使能值。 |
| 3 | SETENA35 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前使能值。 |
| 2 | SETENA34 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前使能值。 |
| 1 | SETENA33 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前使能值。 |
| 0 | SETENA32 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将启用 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前使能值。 |
图 3-80 展示了 NVIC_ICER0,表 3-116 对其进行了介绍。
返回到汇总表。
Irq 0 至 31 清除使能
该寄存器用于禁用中断并确定当前哪些中断处于启用状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| CLRENA31 | CLRENA30 | CLRENA29 | CLRENA28 | CLRENA27 | CLRENA26 | CLRENA25 | CLRENA24 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| CLRENA23 | CLRENA22 | CLRENA21 | CLRENA20 | CLRENA19 | CLRENA18 | CLRENA17 | CLRENA16 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| CLRENA15 | CLRENA14 | CLRENA13 | CLRENA12 | CLRENA11 | CLRENA10 | CLRENA9 | CLRENA8 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CLRENA7 | CLRENA6 | CLRENA5 | CLRENA4 | CLRENA3 | CLRENA2 | CLRENA1 | CLRENA0 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | CLRENA31 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前使能值。 |
| 30 | CLRENA30 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前使能值。 |
| 29 | CLRENA29 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前使能值。 |
| 28 | CLRENA28 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前使能值。 |
| 27 | CLRENA27 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前使能值。 |
| 26 | CLRENA26 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前使能值。 |
| 25 | CLRENA25 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前使能值。 |
| 24 | CLRENA24 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前使能值。 |
| 23 | CLRENA23 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前使能值。 |
| 22 | CLRENA22 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前使能值。 |
| 21 | CLRENA21 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前使能值。 |
| 20 | CLRENA20 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前使能值。 |
| 19 | CLRENA19 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前使能值。 |
| 18 | CLRENA18 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前使能值。 |
| 17 | CLRENA17 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前使能值。 |
| 16 | CLRENA16 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前使能值。 |
| 15 | CLRENA15 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前使能值。 |
| 14 | CLRENA14 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前使能值。 |
| 13 | CLRENA13 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前使能值。 |
| 12 | CLRENA12 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前使能值。 |
| 11 | CLRENA11 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前使能值。 |
| 10 | CLRENA10 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前使能值。 |
| 9 | CLRENA9 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前使能值。 |
| 8 | CLRENA8 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前使能值。 |
| 7 | CLRENA7 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前使能值。 |
| 6 | CLRENA6 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前使能值。 |
| 5 | CLRENA5 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前使能值。 |
| 4 | CLRENA4 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前使能值。 |
| 3 | CLRENA3 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前使能值。 |
| 2 | CLRENA2 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前使能值。 |
| 1 | CLRENA1 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前使能值。 |
| 0 | CLRENA0 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前使能值。 |
图 3-81 展示了 NVIC_ICER1,表 3-117 对其进行了介绍。
返回到汇总表。
Irq 32 至 63 清除使能
该寄存器用于禁用中断并确定当前哪些中断处于启用状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CLRENA37 | CLRENA36 | CLRENA35 | CLRENA34 | CLRENA33 | CLRENA32 | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5 | CLRENA37 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前使能值。 |
| 4 | CLRENA36 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前使能值。 |
| 3 | CLRENA35 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前使能值。 |
| 2 | CLRENA34 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前使能值。 |
| 1 | CLRENA33 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前使能值。 |
| 0 | CLRENA32 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将禁用 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前使能值。 |
图 3-82 展示了 NVIC_ISPR0,表 3-118 对其进行了介绍。
返回到汇总表。
Irq 0 至 31 设置挂起
该寄存器用于强制中断进入挂起状态并确定当前哪些中断处于挂起状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| SETPEND31 | SETPEND30 | SETPEND29 | SETPEND28 | SETPEND27 | SETPEND26 | SETPEND25 | SETPEND24 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SETPEND23 | SETPEND22 | SETPEND21 | SETPEND20 | SETPEND19 | SETPEND18 | SETPEND17 | SETPEND16 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SETPEND15 | SETPEND14 | SETPEND13 | SETPEND12 | SETPEND11 | SETPEND10 | SETPEND9 | SETPEND8 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SETPEND7 | SETPEND6 | SETPEND5 | SETPEND4 | SETPEND3 | SETPEND2 | SETPEND1 | SETPEND0 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | SETPEND31 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前状态。 |
| 30 | SETPEND30 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前状态。 |
| 29 | SETPEND29 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前状态。 |
| 28 | SETPEND28 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前状态。 |
| 27 | SETPEND27 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前状态。 |
| 26 | SETPEND26 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前状态。 |
| 25 | SETPEND25 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前状态。 |
| 24 | SETPEND24 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前状态。 |
| 23 | SETPEND23 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前状态。 |
| 22 | SETPEND22 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前状态。 |
| 21 | SETPEND21 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前状态。 |
| 20 | SETPEND20 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前状态。 |
| 19 | SETPEND19 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前状态。 |
| 18 | SETPEND18 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前状态。 |
| 17 | SETPEND17 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前状态。 |
| 16 | SETPEND16 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前状态。 |
| 15 | SETPEND15 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前状态。 |
| 14 | SETPEND14 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前状态。 |
| 13 | SETPEND13 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前状态。 |
| 12 | SETPEND12 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前状态。 |
| 11 | SETPEND11 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前状态。 |
| 10 | SETPEND10 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前状态。 |
| 9 | SETPEND9 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前状态。 |
| 8 | SETPEND8 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前状态。 |
| 7 | SETPEND7 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前状态。 |
| 6 | SETPEND6 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前状态。 |
| 5 | SETPEND5 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前状态。 |
| 4 | SETPEND4 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前状态。 |
| 3 | SETPEND3 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前状态。 |
| 2 | SETPEND2 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前状态。 |
| 1 | SETPEND1 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前状态。 |
| 0 | SETPEND0 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前状态。 |
图 3-83 展示了 NVIC_ISPR1,表 3-119 对其进行了介绍。
返回到汇总表。
Irq 32 至 63 设置挂起
该寄存器用于强制中断进入挂起状态并确定当前哪些中断处于挂起状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SETPEND37 | SETPEND36 | SETPEND35 | SETPEND34 | SETPEND33 | SETPEND32 | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5 | SETPEND37 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前状态。 |
| 4 | SETPEND36 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前状态。 |
| 3 | SETPEND35 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前状态。 |
| 2 | SETPEND34 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前状态。 |
| 1 | SETPEND33 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前状态。 |
| 0 | SETPEND32 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将挂起 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前状态。 |
图 3-84 展示了 NVIC_ICPR0,表 3-120 对其进行了介绍。
返回到汇总表。
Irq 0 至 31 清除挂起
该寄存器用于清除挂起的中断并确定当前哪些中断处于挂起状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| CLRPEND31 | CLRPEND30 | CLRPEND29 | CLRPEND28 | CLRPEND27 | CLRPEND26 | CLRPEND25 | CLRPEND24 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| CLRPEND23 | CLRPEND22 | CLRPEND21 | CLRPEND20 | CLRPEND19 | CLRPEND18 | CLRPEND17 | CLRPEND16 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| CLRPEND15 | CLRPEND14 | CLRPEND13 | CLRPEND12 | CLRPEND11 | CLRPEND10 | CLRPEND9 | CLRPEND8 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CLRPEND7 | CLRPEND6 | CLRPEND5 | CLRPEND4 | CLRPEND3 | CLRPEND2 | CLRPEND1 | CLRPEND0 |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | CLRPEND31 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前状态。 |
| 30 | CLRPEND30 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前状态。 |
| 29 | CLRPEND29 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前状态。 |
| 28 | CLRPEND28 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前状态。 |
| 27 | CLRPEND27 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前状态。 |
| 26 | CLRPEND26 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前状态。 |
| 25 | CLRPEND25 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前状态。 |
| 24 | CLRPEND24 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前状态。 |
| 23 | CLRPEND23 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前状态。 |
| 22 | CLRPEND22 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前状态。 |
| 21 | CLRPEND21 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前状态。 |
| 20 | CLRPEND20 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前状态。 |
| 19 | CLRPEND19 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前状态。 |
| 18 | CLRPEND18 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前状态。 |
| 17 | CLRPEND17 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前状态。 |
| 16 | CLRPEND16 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前状态。 |
| 15 | CLRPEND15 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前状态。 |
| 14 | CLRPEND14 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前状态。 |
| 13 | CLRPEND13 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前状态。 |
| 12 | CLRPEND12 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前状态。 |
| 11 | CLRPEND11 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前状态。 |
| 10 | CLRPEND10 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前状态。 |
| 9 | CLRPEND9 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前状态。 |
| 8 | CLRPEND8 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前状态。 |
| 7 | CLRPEND7 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前状态。 |
| 6 | CLRPEND6 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前状态。 |
| 5 | CLRPEND5 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前状态。 |
| 4 | CLRPEND4 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前状态。 |
| 3 | CLRPEND3 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前状态。 |
| 2 | CLRPEND2 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前状态。 |
| 1 | CLRPEND1 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前状态。 |
| 0 | CLRPEND0 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前状态。 |
图 3-85 展示了 NVIC_ICPR1,表 3-121 对其进行了介绍。
返回到汇总表。
Irq 32 至 63 清除挂起
该寄存器用于清除挂起的中断并确定当前哪些中断处于挂起状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CLRPEND37 | CLRPEND36 | CLRPEND35 | CLRPEND34 | CLRPEND33 | CLRPEND32 | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5 | CLRPEND37 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前状态。 |
| 4 | CLRPEND36 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前状态。 |
| 3 | CLRPEND35 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前状态。 |
| 2 | CLRPEND34 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前状态。 |
| 1 | CLRPEND33 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前状态。 |
| 0 | CLRPEND32 | R/W | 0h | 向该位写入 0 无效,向该位写入 1 将清除相应挂起的 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前状态。 |
图 3-86 展示了 NVIC_IABR0,表 3-122 对其进行了介绍。
返回到汇总表。
Irq 0 至 31 活动位
该寄存器用于确定哪些中断处于活动状态。该寄存器中的每个标志对应一个中断。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| ACTIVE31 | ACTIVE30 | ACTIVE29 | ACTIVE28 | ACTIVE27 | ACTIVE26 | ACTIVE25 | ACTIVE24 |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ACTIVE23 | ACTIVE22 | ACTIVE21 | ACTIVE20 | ACTIVE19 | ACTIVE18 | ACTIVE17 | ACTIVE16 |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| ACTIVE15 | ACTIVE14 | ACTIVE13 | ACTIVE12 | ACTIVE11 | ACTIVE10 | ACTIVE9 | ACTIVE8 |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ACTIVE7 | ACTIVE6 | ACTIVE5 | ACTIVE4 | ACTIVE3 | ACTIVE2 | ACTIVE1 | ACTIVE0 |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | ACTIVE31 | R | 0h | 该位读值为 0 意味着中断线 31 处于非活动状态。该位读值为 1 意味着中断线 31 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。 |
| 30 | ACTIVE30 | R | 0h | 该位读值为 0 意味着中断线 30 处于非活动状态。该位读值为 1 意味着中断线 30 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。 |
| 29 | ACTIVE29 | R | 0h | 该位读值为 0 意味着中断线 29 处于非活动状态。该位读值为 1 意味着中断线 29 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。 |
| 28 | ACTIVE28 | R | 0h | 该位读值为 0 意味着中断线 28 处于非活动状态。该位读值为 1 意味着中断线 28 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。 |
| 27 | ACTIVE27 | R | 0h | 该位读值为 0 意味着中断线 27 处于非活动状态。该位读值为 1 意味着中断线 27 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。 |
| 26 | ACTIVE26 | R | 0h | 该位读值为 0 意味着中断线 26 处于非活动状态。该位读值为 1 意味着中断线 26 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。 |
| 25 | ACTIVE25 | R | 0h | 该位读值为 0 意味着中断线 25 处于非活动状态。该位读值为 1 意味着中断线 25 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。 |
| 24 | ACTIVE24 | R | 0h | 该位读值为 0 意味着中断线 24 处于非活动状态。该位读值为 1 意味着中断线 24 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。 |
| 23 | ACTIVE23 | R | 0h | 该位读值为 0 意味着中断线 23 处于非活动状态。该位读值为 1 意味着中断线 23 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。 |
| 22 | ACTIVE22 | R | 0h | 该位读值为 0 意味着中断线 22 处于非活动状态。该位读值为 1 意味着中断线 22 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。 |
| 21 | ACTIVE21 | R | 0h | 该位读值为 0 意味着中断线 21 处于非活动状态。该位读值为 1 意味着中断线 21 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。 |
| 20 | ACTIVE20 | R | 0h | 该位读值为 0 意味着中断线 20 处于非活动状态。该位读值为 1 意味着中断线 20 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。 |
| 19 | ACTIVE19 | R | 0h | 该位读值为 0 意味着中断线 19 处于非活动状态。该位读值为 1 意味着中断线 19 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。 |
| 18 | ACTIVE18 | R | 0h | 该位读值为 0 意味着中断线 18 处于非活动状态。该位读值为 1 意味着中断线 18 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。 |
| 17 | ACTIVE17 | R | 0h | 该位读值为 0 意味着中断线 17 处于非活动状态。该位读值为 1 意味着中断线 17 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。 |
| 16 | ACTIVE16 | R | 0h | 该位读值为 0 意味着中断线 16 处于非活动状态。该位读值为 1 意味着中断线 16 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。 |
| 15 | ACTIVE15 | R | 0h | 该位读值为 0 意味着中断线 15 处于非活动状态。该位读值为 1 意味着中断线 15 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。 |
| 14 | ACTIVE14 | R | 0h | 该位读值为 0 意味着中断线 14 处于非活动状态。该位读值为 1 意味着中断线 14 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。 |
| 13 | ACTIVE13 | R | 0h | 该位读值为 0 意味着中断线 13 处于非活动状态。该位读值为 1 意味着中断线 13 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。 |
| 12 | ACTIVE12 | R | 0h | 该位读值为 0 意味着中断线 12 处于非活动状态。该位读值为 1 意味着中断线 12 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。 |
| 11 | ACTIVE11 | R | 0h | 该位读值为 0 意味着中断线 11 处于非活动状态。该位读值为 1 意味着中断线 11 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。 |
| 10 | ACTIVE10 | R | 0h | 该位读值为 0 意味着中断线 10 处于非活动状态。该位读值为 1 意味着中断线 10 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。 |
| 9 | ACTIVE9 | R | 0h | 该位读值为 0 意味着中断线 9 处于非活动状态。该位读值为 1 意味着中断线 9 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。 |
| 8 | ACTIVE8 | R | 0h | 该位读值为 0 意味着中断线 8 处于非活动状态。该位读值为 1 意味着中断线 8 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。 |
| 7 | ACTIVE7 | R | 0h | 该位读值为 0 意味着中断线 7 处于非活动状态。该位读值为 1 意味着中断线 7 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。 |
| 6 | ACTIVE6 | R | 0h | 该位读值为 0 意味着中断线 6 处于非活动状态。该位读值为 1 意味着中断线 6 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。 |
| 5 | ACTIVE5 | R | 0h | 该位读值为 0 意味着中断线 5 处于非活动状态。该位读值为 1 意味着中断线 5 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。 |
| 4 | ACTIVE4 | R | 0h | 该位读值为 0 意味着中断线 4 处于非活动状态。该位读值为 1 意味着中断线 4 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。 |
| 3 | ACTIVE3 | R | 0h | 该位读值为 0 意味着中断线 3 处于非活动状态。该位读值为 1 意味着中断线 3 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。 |
| 2 | ACTIVE2 | R | 0h | 该位读值为 0 意味着中断线 2 处于非活动状态。该位读值为 1 意味着中断线 2 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。 |
| 1 | ACTIVE1 | R | 0h | 该位读值为 0 意味着中断线 1 处于非活动状态。该位读值为 1 意味着中断线 1 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。 |
| 0 | ACTIVE0 | R | 0h | 该位读值为 0 意味着中断线 0 处于非活动状态。该位读值为 1 意味着中断线 0 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。 |
图 3-87 展示了 NVIC_IABR1,表 3-123 对其进行了介绍。
返回到汇总表。
Irq 32 至 63 活动位
该寄存器用于确定哪些中断处于活动状态。该寄存器中的每个标志对应一个中断。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | ACTIVE37 | ACTIVE36 | ACTIVE35 | ACTIVE34 | ACTIVE33 | ACTIVE32 | |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5 | ACTIVE37 | R | 0h | 该位读值为 0 意味着中断线 37 处于非活动状态。该位读值为 1 意味着中断线 37 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。 |
| 4 | ACTIVE36 | R | 0h | 该位读值为 0 意味着中断线 36 处于非活动状态。该位读值为 1 意味着中断线 36 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。 |
| 3 | ACTIVE35 | R | 0h | 该位读值为 0 意味着中断线 35 处于非活动状态。该位读值为 1 意味着中断线 35 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。 |
| 2 | ACTIVE34 | R | 0h | 该位读值为 0 意味着中断线 34 处于非活动状态。该位读值为 1 意味着中断线 34 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。 |
| 1 | ACTIVE33 | R | 0h | 该位读值为 0 意味着中断线 33 处于非活动状态。该位读值为 1 意味着中断线 33 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。 |
| 0 | ACTIVE32 | R | 0h | 该位读值为 0 意味着中断线 32 处于非活动状态。该位读值为 1 意味着中断线 32 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。 |
图 3-88 展示了 NVIC_IPR0,表 3-124 对其进行了介绍。
返回到汇总表。
Irq 0 至 3 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_3 | PRI_2 | PRI_1 | PRI_0 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_3 | R/W | 0h | 中断 3 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。 |
| 23-16 | PRI_2 | R/W | 0h | 中断 2 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。 |
| 15-8 | PRI_1 | R/W | 0h | 中断 1 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。 |
| 7-0 | PRI_0 | R/W | 0h | 中断 0 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。 |
图 3-89 展示了 NVIC_IPR1,表 3-125 对其进行了介绍。
返回到汇总表。
Irq 4 至 7 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_7 | PRI_6 | PRI_5 | PRI_4 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_7 | R/W | 0h | 中断 7 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。 |
| 23-16 | PRI_6 | R/W | 0h | 中断 6 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。 |
| 15-8 | PRI_5 | R/W | 0h | 中断 5 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。 |
| 7-0 | PRI_4 | R/W | 0h | 中断 4 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。 |
图 3-90 展示了 NVIC_IPR2,表 3-126 对其进行了介绍。
返回到汇总表。
Irq 8 至 11 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_11 | PRI_10 | PRI_9 | PRI_8 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_11 | R/W | 0h | 中断 11 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。 |
| 23-16 | PRI_10 | R/W | 0h | 中断 10 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。 |
| 15-8 | PRI_9 | R/W | 0h | 中断 9 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。 |
| 7-0 | PRI_8 | R/W | 0h | 中断 8 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。 |
图 3-91 展示了 NVIC_IPR3,表 3-127 对其进行了介绍。
返回到汇总表。
Irq 12 至 15 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_15 | PRI_14 | PRI_13 | PRI_12 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_15 | R/W | 0h | 中断 15 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。 |
| 23-16 | PRI_14 | R/W | 0h | 中断 14 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。 |
| 15-8 | PRI_13 | R/W | 0h | 中断 13 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。 |
| 7-0 | PRI_12 | R/W | 0h | 中断 12 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。 |
图 3-92 展示了 NVIC_IPR4,表 3-128 对其进行了介绍。
返回到汇总表。
Irq 16 至 19 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_19 | PRI_18 | PRI_17 | PRI_16 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_19 | R/W | 0h | 中断 19 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。 |
| 23-16 | PRI_18 | R/W | 0h | 中断 18 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。 |
| 15-8 | PRI_17 | R/W | 0h | 中断 17 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。 |
| 7-0 | PRI_16 | R/W | 0h | 中断 16 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。 |
图 3-93 展示了 NVIC_IPR5,表 3-129 对其进行了介绍。
返回到汇总表。
Irq 20 至 23 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_23 | PRI_22 | PRI_21 | PRI_20 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_23 | R/W | 0h | 中断 23 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。 |
| 23-16 | PRI_22 | R/W | 0h | 中断 22 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。 |
| 15-8 | PRI_21 | R/W | 0h | 中断 21 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。 |
| 7-0 | PRI_20 | R/W | 0h | 中断 20 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。 |
图 3-94 展示了 NVIC_IPR6,表 3-130 对其进行了介绍。
返回到汇总表。
Irq 24 至 27 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_27 | PRI_26 | PRI_25 | PRI_24 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_27 | R/W | 0h | 中断 27 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。 |
| 23-16 | PRI_26 | R/W | 0h | 中断 26 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。 |
| 15-8 | PRI_25 | R/W | 0h | 中断 25 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。 |
| 7-0 | PRI_24 | R/W | 0h | 中断 24 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。 |
图 3-95 展示了 NVIC_IPR7,表 3-131 对其进行了介绍。
返回到汇总表。
Irq 28 至 31 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_31 | PRI_30 | PRI_29 | PRI_28 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_31 | R/W | 0h | 中断 31 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。 |
| 23-16 | PRI_30 | R/W | 0h | 中断 30 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。 |
| 15-8 | PRI_29 | R/W | 0h | 中断 29 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。 |
| 7-0 | PRI_28 | R/W | 0h | 中断 28 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。 |
图 3-96 展示了 NVIC_IPR8,表 3-132 对其进行了介绍。
返回到汇总表。
Irq 32 至 35 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_35 | PRI_34 | PRI_33 | PRI_32 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_35 | R/W | 0h | 中断 35 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。 |
| 23-16 | PRI_34 | R/W | 0h | 中断 34 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。 |
| 15-8 | PRI_33 | R/W | 0h | 中断 33 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。 |
| 7-0 | PRI_32 | R/W | 0h | 中断 32 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。 |
图 3-97 展示了 NVIC_IPR9,表 3-133 对其进行了介绍。
返回到汇总表。
Irq 32 至 35 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | PRI_37 | PRI_36 | |||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R/W-0h | |||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 15-8 | PRI_37 | R/W | 0h | 中断 37 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。 |
| 7-0 | PRI_36 | R/W | 0h | 中断 36 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。 |
图 3-98 展示了 CPUID,表 3-134 中对此进行了介绍。
返回到汇总表。
CPUID 基地址
该寄存器可确定处理器内核的 ID 号、处理器内核的版本号以及处理器内核的实现细节。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| IMPLEMENTER | VARIANT | 常量 | |||||||||||||
| R-41h | R-0h | R-Fh | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PARTNO | 修订版本 | ||||||||||||||
| R-C24h | R-1h | ||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | IMPLEMENTER | R | 41h | 实现者代码。 |
| 23-20 | 型号 | R | 0h | 实现定义的变体编号。 |
| 19-16 | 常量 | R | Fh | 读为 0xF |
| 15-4 | PARTNO | R | C24h | 系列内部的处理器编号。 |
| 3-0 | 修订版本 | R | 1h | 实现定义的版本号。 |
图 3-99 展示了 ICSR,表 3-135 中对此进行了介绍。
返回到汇总表。
中断控制状态
该寄存器用于设置挂起的不可屏蔽中断 (NMI)、设置或清除挂起的 SVC、设置或清除挂起的 SysTick、检查挂起的异常、检查具有最高优先级的挂起异常的矢量编号,以及检查活动异常的矢量编号。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| NMIPENDSET | RESERVED | PENDSVSET | PENDSVCLR | PENDSTSET | PENDSTCLR | RESERVED | |
| R/W-0h | R/W-0h | R/W-0h | W-X | R/W-0h | W-X | R-0h | |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ISRPREEMPT | ISRPENDING | RESERVED | VECTPENDING | ||||
| R-0h | R-0h | R-0h | R-0h | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| VECTPENDING | RETTOBASE | RESERVED | VECTACTIVE | ||||
| R-0h | R-0h | R-0h | R-0h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VECTACTIVE | |||||||
| R-0h | |||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | NMIPENDSET | R/W | 0h | 设置挂起的 NMI 位。设置该位会挂起并激活 NMI。由于 NMI 是具有最高优先级的中断,因此它会在注册后立即生效。 0:无操作 1:设置挂起的 NMI |
| 30-29 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 28 | PENDSVSET | R/W | 0h | 设置挂起的 pendSV 位。 0:无操作 1:设置挂起的 PendSV |
| 27 | PENDSVCLR | W | X | 清除挂起的 pendSV 位 0:无操作 1:清除挂起的 pendSV |
| 26 | PENDSTSET | R/W | 0h | 设置挂起的 SysTick 位。 0:无操作 1:设置挂起的 SysTick |
| 25 | PENDSTCLR | W | X | 清除挂起的 SysTick 位 0:无操作 1:清除挂起的 SysTick |
| 24 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 23 | ISRPREEMPT | R | 0h | 该字段只能在调试时使用。它表示将在下一个运行周期中响应挂起的中断。如果 DHCSR.C_MASKINTS = 0,则处理中断。 0:不处理挂起的异常。 1:在退出调试暂停状态时处理挂起的异常 |
| 22 | ISRPENDING | R | 0h | 中断挂起标志。不包括 NMI 和故障。 0x0:中断未挂起 0x1:中断挂起 |
| 21-18 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 17-12 | VECTPENDING | R | 0h | 挂起的 ISR 编号字段。该字段包含具有最高优先级的挂起 ISR 的中断编号。 |
| 11 | RETTOBASE | R | 0h | 指示是否有被抢占的活动异常: 0:有被抢占的活动异常待执行 1:没有活动异常,或者当前正在执行的异常是唯一的活动异常。 |
| 10-9 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 8-0 | VECTACTIVE | R | 0h | 活动 ISR 编号字段。复位会清除该字段。 |
图 3-100 展示了 VTOR,表 3-136 中对此进行了介绍。
返回到汇总表。
矢量表偏移
该寄存器用于重定位矢量表基地址。矢量表基地址偏移决定了距存储器映射底部的偏移量。矢量表基地址偏移的两个最高有效位和七个最低有效位必须为 0。矢量表基地址偏移寄存器中允许更改的部分是 TBLOFF。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | TBLOFF | ||||||
| R/W-0h | R/W-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TBLOFF | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| TBLOFF | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TBLOFF | RESERVED | ||||||
| R/W-0h | R/W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-30 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 29-7 | TBLOFF | R/W | 0h | 矢量表基地址偏移寄存器的位 29 到 7。 |
| 6-0 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-101 展示了 AIRCR,表 3-137 中对此进行了介绍。
返回到汇总表。
应用中断/复位控制
该寄存器用于确定数据字节序、清除所有活动状态信息以进行调试或从硬故障中恢复、执行系统复位,以及更改优先级分组位置(二进制点)。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| VECTKEY | |||||||
| R/W-FA05h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| VECTKEY | |||||||
| R/W-FA05h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| ENDIANESS | RESERVED | PRIGROUP | |||||
| R-0h | R-0h | R/W-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SYSRESETREQ | VECTCLRACTIVE | VECTRESET | ||||
| R/W-0h | W-0h | W-0h | W-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | VECTKEY | R/W | FA05h | 寄存器密钥。写入该寄存器 (AIRCR) 需要 VECTKEY 字段为 0x05FA。否则写入值会被忽略。读取始终返回 0xFA05。 |
| 15 | ENDIANESS | R | 0h | 数据字节序位 0h = 小端字节序 1h = 大端字节序 |
| 14-11 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 10-8 | PRIGROUP | R/W | 0h | 中断优先级分组字段。该字段是一个二进制点位置指示符,用于为具有相同抢占级别的异常创建子优先级。它将中断优先级寄存器(NVIC_IPR0、NVIC_IPR1 至 NVIC_IPR8)中的 PRI_n 字段分为抢占级别和子优先级。二进制点位于值的左侧。这意味着 PRIGROUP 值表示一个从最低有效位 (LSB) 左侧起始的点。根据分配给优先级的位数以及实现选择,最小值可能不是 0。 |
| 7-3 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 2 | SYSRESETREQ | W | 0h | 请求热复位。设置该位不会阻止暂停调试运行。 |
| 1 | VECTCLRACTIVE | W | 0h | 清除活动 NMI、故障和中断的所有活动状态信息。应用程序负责重新初始化堆栈。该位用于在调试期间返回到已知状态。该位会自行清除。此操作不会清除 IPSR。因此,如果应用程序使用该位,则只能在激活的基础级别使用,或在可以设置活动位的系统处理程序内使用。 |
| 0 | VECTRESET | W | 0h | 系统复位位。复位系统,调试组件除外。该位保留用于调试,仅当内核处于暂停状态时,才能写入 1。该位会自行清除。在内核未处于暂停状态时向该位写入 1 可能会导致不可预测的行为。 |
图 3-102 展示了 SCR,表 3-138 中对此进行了介绍。
返回到汇总表。
系统控制
该寄存器用于电源管理功能,即当处理器可以进入低功耗状态时向系统发出信号,从而控制处理器进入和退出低功耗状态的方式。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SEVONPEND | RESERVED | SLEEPDEEP | SLEEPONEXIT | RESERVED | ||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-5 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 4 | SEVONPEND | R/W | 0h | 挂起时发送事件位: 0:只有启用的中断或事件才能唤醒处理器,禁用的中断不可以 1:启用的事件和所有中断(包括禁用的中断)都可以唤醒处理器。 当事件或中断进入挂起状态时,事件信号会将处理器从 WFE 状态唤醒。 如果处理器没有等待事件,则会记录事件并影响下一个 WFE。 处理器还会在执行 SEV 指令时被唤醒。 |
| 3 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 2 | SLEEPDEEP | R/W | 0h | 控制处理器使用睡眠模式还是深度睡眠模式作为其低功耗模式 0h = 睡眠模式 1h = 深度睡眠模式 |
| 1 | SLEEPONEXIT | R/W | 0h | 从处理程序模式返回线程模式时,在退出时进入睡眠状态。使中断驱动的应用程序能够避免返回到空闲的主应用程序。 0:返回线程模式时不进入睡眠状态 1:在 ISR 退出时进入睡眠状态 |
| 0 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-103 展示了 CCR,表 3-139 中对此进行了介绍。
返回到汇总表。
配置控制
该寄存器用于使能 NMI、硬故障和 FAULTMASK 以忽略总线故障、除零陷阱和非对齐访问,使用户能够访问软件触发中断寄存器 (STIR),并控制进入线程模式的行为。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | STKALIGN | BFHFNMIGN | |||||
| R/W-0h | R/W-1h | R/W-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DIV_0_TRP | UNALIGN_TRP | RESERVED | USERSETMPEND | NONBASETHREDENA | ||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-10 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 9 | STKALIGN | R/W | 1h | 栈对齐位。 0:在异常进入时,对于在异常发生之前使用的堆栈指针 (SP),只能保证 4 字节对齐。 1:在异常进入时,在异常发生之前使用的 SP 会调整为 8 字节对齐,并保存用于恢复的上下文。在返回关联的异常时恢复 SP。 |
| 8 | BFHFNMIGN | R/W | 0h | 使能优先级为 -1 或 -2 的处理程序,以忽略由加载和存储指令引起的数据总线故障。这适用于硬故障、NMI 和 FAULTMASK 升级处理程序: 0:加载和存储指令导致的数据总线故障会导致锁定 1:加载和存储指令导致的数据总线故障会被忽略。 仅当处理程序及其数据位于绝对安全的存储器中时,才将该位设置为 1。 该位的正常用途是探测系统器件和桥接器以检测问题。 |
| 7-5 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 4 | DIV_0_TRP | R/W | 0h | 在处理器执行除数为 0 的 SDIV 或 UDIV 指令时使能故障触发或暂停: 0:不触发除零异常。在此模式下,除以零将返回商 0。 1:触发除零异常。相关的使用故障状态寄存器位为 CFSR.DIVBYZERO。 |
| 3 | UNALIGN_TRP | R/W | 0h | 使能非对齐访问陷阱: 0:不触发非对齐半字和字访问异常 1:触发非对齐半字和字访问异常。相关的使用故障状态寄存器位为 CFSR.UNALIGNED。 如果该位设置为 1,则非对齐访问会生成使用故障。 无论 UNALIGN_TRP 中的值如何,非对齐的 LDM、STM、LDRD 和 STRD 指令始终导致故障。 |
| 2 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 1 | USERSETMPEND | R/W | 0h | 使能对 STIR 的非特权软件访问: 0:用户代码不允许写入软件触发中断寄存器 (STIR)。 1:用户代码可以写入软件触发中断寄存器 (STIR),以触发(挂起)与主堆栈指针关联的主异常。 |
| 0 | NONBASETHREDENA | R/W | 0h | 指示处理器进入线程模式的方式: 0:只有在没有活动异常时,处理器才能进入线程模式。 1:处理器可以使用适当的返回值 (EXC_RETURN),从任何级别进入线程模式。 在处理程序模式下,当以下指令之一将值 0xFXXXXXXX 加载到 PC 时,会发生异常返回: - 包含加载 PC 操作的 POP/LDM。 - 以 PC 为目的地的 LDR。 - 使用任意寄存器的 BX。 写入 PC 的值会被截获,称为 EXC_RETURN 值。 |
图 3-104 展示了 SHPR1,表 3-140 对其进行了介绍。
返回到汇总表。
系统处理程序 4-7 的优先级
该寄存器用于为以下系统处理程序分配优先级:存储器管理、总线故障和使用故障。系统处理程序是一类特殊的异常处理程序,可以设置为任何优先级。其中大多数可以开启屏蔽(启用)或解除屏蔽(禁用)。禁用时,故障始终被视为硬故障。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | PRI_6 | PRI_5 | PRI_4 | ||||||||||||||||||||||||||||
| R-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | 保留 |
| 23-16 | PRI_6 | R/W | 0h | 系统处理程序 6 的优先级:UsageFault |
| 15-8 | PRI_5 | R/W | 0h | 系统处理程序 5 的优先级:BusFault |
| 7-0 | PRI_4 | R/W | 0h | 系统处理程序 4 的优先级:MemManage |
图 3-105 展示了 SHPR2,表 3-141 对其进行了介绍。
返回到汇总表。
系统处理程序 8-11 的优先级
该寄存器用于为 SVC 处理程序分配优先级。系统处理程序是一类特殊的异常处理程序,可以设置为任何优先级。其中大多数可以开启屏蔽(启用)或解除屏蔽(禁用)。禁用时,故障始终被视为硬故障。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_11 | RESERVED | ||||||||||||||||||||||||||||||
| R/W-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_11 | R/W | 0h | 系统处理程序 11 的优先级:SVCall |
| 23-0 | RESERVED | R | 0h | 保留 |
图 3-106 展示了 SHPR3,表 3-142 对其进行了介绍。
返回到汇总表。
系统处理程序 12-15 的优先级
该寄存器用于为以下系统处理程序分配优先级:SysTick、PendSV 和调试监视器。系统处理程序是一类特殊的异常处理程序,可以设置为任何优先级。其中大多数可以开启屏蔽(启用)或解除屏蔽(禁用)。禁用时,故障始终被视为硬故障。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_15 | PRI_14 | RESERVED | PRI_12 | ||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | R-0h | R/W-0h | ||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | PRI_15 | R/W | 0h | 系统处理程序 15 的优先级:SysTick 异常 |
| 23-16 | PRI_14 | R/W | 0h | 系统处理程序 14 的优先级:PendSV |
| 15-8 | RESERVED | R | 0h | 保留 |
| 7-0 | PRI_12 | R/W | 0h | 系统处理程序 12 的优先级:调试监视器 |
图 3-107 展示了 SHCSR,表 3-143 中对此进行了介绍。
返回到汇总表。
系统处理程序控制和状态
该寄存器用于启用或禁用系统处理程序、确定总线故障、存储器管理故障和 SVC 的挂起状态,以及确定系统处理程序的活动状态。如果在其故障处理程序禁用时出现故障情况,则故障会升级为硬故障。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | USGFAULTENA | BUSFAULTENA | MEMFAULTENA | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SVCALLPENDED | BUSFAULTPENDED | MEMFAULTPENDED | USGFAULTPENDED | SYSTICKACT | PENDSVACT | RESERVED | MONITORACT |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SVCALLACT | RESERVED | USGFAULTACT | RESERVED | BUSFAULTACT | MEMFAULTACT | ||
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | ||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-19 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 18 | USGFAULTENA | R/W | 0h | 使用故障系统处理程序使能 0h = 禁用异常 1h = 启用异常 |
| 17 | BUSFAULTENA | R/W | 0h | 总线故障系统处理程序使能 0h = 禁用异常 1h = 启用异常 |
| 16 | MEMFAULTENA | R/W | 0h | 存储器管理故障系统处理程序使能 0h = 禁用异常 1h = 启用异常 |
| 15 | SVCALLPENDED | R | 0h | SVCall 挂起 0h = 异常处于非活动状态 1h = 异常挂起。 |
| 14 | BUSFAULTPENDED | R | 0h | 总线故障挂起 0h = 异常处于非活动状态 1h = 异常挂起。 |
| 13 | MEMFAULTPENDED | R | 0h | 存储器管理异常挂起 0h = 异常处于非活动状态 1h = 异常挂起。 |
| 12 | USGFAULTPENDED | R | 0h | 使用故障挂起 0h = 异常处于非活动状态 1h = 异常挂起。 |
| 11 | SYSTICKACT | R | 0h | SysTick 活动标志。 0x0:非活动 0x1:活动 0h = 异常处于非活动状态 1h = 异常处于活动状态 |
| 10 | PENDSVACT | R | 0h | PendSV 活动 0x0:非活动 0x1:有效 |
| 9 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 8 | MONITORACT | R | 0h | 调试监视器活动 0h = 异常处于非活动状态 1h = 异常处于活动状态 |
| 7 | SVCALLACT | R | 0h | SVCall 活动 0h = 异常处于非活动状态 1h = 异常处于活动状态 |
| 6-4 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 3 | USGFAULTACT | R | 0h | 使用故障异常活动 0h = 异常处于非活动状态 1h = 异常处于活动状态 |
| 2 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 1 | BUSFAULTACT | R | 0h | 总线故障异常活动 0h = 异常处于非活动状态 1h = 异常处于活动状态 |
| 0 | MEMFAULTACT | R | 0h | 存储器管理异常活动 0h = 异常处于非活动状态 1h = 异常处于活动状态 |
图 3-108 展示了 CFSR,表 3-144 中对此进行了介绍。
返回到汇总表。
可配置故障状态
该寄存器用于获取有关本地故障的信息。这些寄存器包括三个子部分:第一个字节是存储器管理故障状态寄存器 (MMFSR)。第二个字节是总线故障状态寄存器 (BFSR)。高半字是使用故障状态寄存器 (UFSR)。这些寄存器中的标志指示本地故障出现的原因。如果发生多个故障,可以设置多个标志。这些寄存器为读/写清型寄存器。这意味着它们可以正常读取,但向任何位写入 1 都会清除该位。
CFSR 可按字节访问。CFSR 或其子寄存器可按如下方式访问:
可以对 CFSR 寄存器进行以下访问:
- 通过对 0xE000ED28 进行字访问来访问完整的寄存器。
- 通过对 0xE000ED28 进行字节访问来访问 MMFSR
- 通过对 0xE000ED28 进行半字访问来访问 MMFSR 和 BFSR
- 通过对 0xE000ED29 进行字节访问来访问 BFSR
- 通过对 0xE000ED2A 进行半字访问来访问 UFSR。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | DIVBYZERO | UNALIGNED | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | NOCP | INVPC | INVSTATE | UNDEFINSTR | |||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| BFARVALID | RESERVED | STKERR | UNSTKERR | IMPRECISERR | PRECISERR | IBUSERR | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MMARVALID | RESERVED | MSTKERR | MUNSTKERR | RESERVED | DACCVIOL | IACCVIOL | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-26 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 25 | DIVBYZERO | R/W | 0h | CCR.DIV_0_TRP(请参阅第 8-26 页的“配置控制寄存器”)已启用且 SDIV 或 UDIV 指令使用的除数为 0 时,会发生该故障。指令将被执行,且返回的 PC 指向该指令。如果未设置 CCR.DIV_0_TRP,则除法运算将返回商 0。 |
| 24 | UNALIGNED | R/W | 0h | 当 CCR.UNALIGN_TRP 已启用且尝试进行非对齐存储器访问时,会发生此故障。无论 CCR.UNALIGN_TRP 的设置如何,非对齐的 LDM/STM/LDRD/STRD 指令始终导致故障。 |
| 23-20 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 19 | NOCP | R/W | 0h | 尝试使用协处理器指令。处理器不支持协处理器指令。 |
| 18 | INVPC | R/W | 0h | 尝试非法将 EXC_RETURN 加载到 PC 中。无效指令、无效上下文、无效值。返回 PC 指向尝试设置 PC 的指令。 |
| 17 | INVSTATE | R/W | 0h | 表示尝试在无效 EPSR 状态下执行(例如,在 BX 类型指令更改状态后)。这包括进入异常或从异常返回后的状态变化,以及互操作指令引起的状态变化。返回 PC 指向导致故障的指令,并且携带无效状态。 |
| 16 | UNDEFINSTR | R/W | 0h | 当处理器尝试执行未定义的指令时,设置该位。未定义的指令是指处理器无法解码的指令。返回 PC 指向未定义的指令。 |
| 15 | BFARVALID | R/W | 0h | 如果总线故障地址寄存器 (BFAR) 包含有效地址,则会设置该位。在地址已知的总线故障发生后,同样设置该位。其他故障则会清除该位,例如后发生的存储器管理故障。如果发生总线故障且该故障由于优先级而升级为硬故障,则硬故障处理程序必须清除该位。这可防止在返回已压栈的活动总线故障处理程序时,因其 BFAR 值已被覆写而出现问题。 |
| 14-13 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 12 | STKERR | R/W | 0h | 异常压栈过程已导致一个或多个总线故障。仍会调整 SP,堆栈上下文区域中的值可能不正确。不写入 BFAR。 |
| 11 | UNSTKERR | R/W | 0h | 异常返回时的出栈过程已导致一个或多个总线故障。这会链接到处理程序,以便保留原始返回栈。不会因故障返回而调整 SP,也不会执行新的保存。不写入 BFAR。 |
| 10 | IMPRECISERR | R/W | 0h | 数据总线不精确错误。这是一个总线故障,但返回 PC 与导致该故障的指令无关。这不是同步故障。因此,如果在当前激活的优先级高于总线故障时检测到该故障,则只会挂起该故障。当返回到较低优先级的激活时,总线故障激活。如果在返回较低优先级的异常之前发生精确故障,处理程序会同时检测到 IMPRECISERR 置位以及某个精确故障状态位被置位。不写入 BFAR。 |
| 9 | PRECISERR | R/W | 0h | 精确数据总线错误返回。 |
| 8 | IBUSERR | R/W | 0h | 指令总线错误标志。该标志由预取错误设置。故障会在该指令处停止,因此如果错误在分支影子下发生,则不会发生故障。不写入 BFAR。 |
| 7 | MMARVALID | R/W | 0h | 存储器管理地址寄存器 (MMFAR) 地址有效标志。后到达的故障(如总线故障)可以清除存储器管理故障。如果发生存储器管理故障且该故障由于优先级而升级为硬故障,则硬故障处理程序必须清除该位。这可防止在返回已压栈的活动存储器管理处理程序时,因其 MMFAR 值已被覆写而出现问题。 |
| 6-5 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 4 | MSTKERR | R/W | 0h | 异常压栈过程已导致一个或多个访问违例。仍会调整 SP,堆栈上下文区域中的值可能不正确。不写入 MMFAR。 |
| 3 | MUNSTKERR | R/W | 0h | 异常返回时的出栈过程已导致一个或多个访问违例。这会链接到处理程序,以便保留原始返回栈。不会因故障返回而调整 SP,也不会执行新的保存。不写入 MMFAR。 |
| 2 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 1 | DACCVIOL | R/W | 0h | 数据访问违例标志。如果尝试在不允许操作的位置加载或存储,则会设置此标志。返回 PC 指向导致故障的指令。该错误会将所尝试访问的地址加载到 MMFAR 中。 |
| 0 | IACCVIOL | R/W | 0h | 指令访问违例标志。如果尝试从不允许执行的位置获取指令,则会设置此标志。即使 MPU 已被禁用或不存在,但只要对 XN 区域进行任何访问,就会发生这种情况。返回 PC 指向导致故障的指令。不写入 MMFAR。 |
图 3-109 展示了 HFSR,表 3-145 中对此进行了介绍。
返回到汇总表。
硬故障状态
该寄存器用于获取有关激活硬故障处理程序的事件的信息。该寄存器是写清型寄存器。这意味着向某个位写入 1 会清除该位。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| DEBUGEVT | FORCED | RESERVED | |||||
| R/W1C-0h | R/W1C-0h | R/W-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | VECTTBL | RESERVED | |||||
| R/W-0h | R/W1C-0h | R/W-0h | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | DEBUGEVT | R/W1C | 0h | 如果存在与调试相关的故障,则设置该位。仅当未启用暂停调试时,才会发生该故障。对于启用监视器的调试,仅当当前优先级高于监视器时,执行 BKPT 指令时才会发生该故障。当暂停调试和监视器调试都被禁用时,仅当调试事件未被忽略时,才会发生该故障(至少包含 BKPT 指令)。调试故障状态寄存器会被更新。 |
| 30 | FORCED | R/W1C | 0h | 硬故障激活是因为接收到可配置故障,而无法激活是由于优先级原因或因为可配置故障被禁用。然后,硬故障处理程序必须读取其他故障状态寄存器以确定原因。 |
| 29-2 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 1 | VECTTBL | R/W1C | 0h | 如果由于异常处理时读取的矢量表而导致故障(总线故障),则设置该位。这种情况下,故障始终是硬故障。返回 PC 指向被抢占的指令。 |
| 0 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-110 展示了 DFSR,表 3-146 中对此进行了介绍。
返回到汇总表。
调试故障状态
该寄存器用于监视外部调试请求、矢量捕获、数据观察点匹配、BKPT 指令执行和暂停请求。当发生多种故障情况时,可以在调试故障状态寄存器中设置多个标志。该寄存器为读/写清型寄存器。这意味着它可以正常读取,而向某个位写入 1 则会清除该位。请注意,除非捕获到事件,否则不会设置这些位。这意味着它会导致某种停止。如果启用了暂停调试,这些事件会使处理器停止并进入调试状态。如果禁用了调试并启用了调试监视器,则在优先级允许的情况下,这将成为调试监视器处理程序调用。如果调试和监视器都被禁用,则其中一些事件为硬故障,而另一些事件将被忽略。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 外部 | VCATCH | DWTTRAP | BKPT | HALTED | ||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-5 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 4 | 外部 | R/W | 0h | 外部调试请求标志。处理器在下一指令边界处停止。 0x0:外部调试请求信号未置为有效 0x1:外部调试请求信号置为有效 |
| 3 | VCATCH | R/W | 0h | 矢量捕获标志。设置该标志时,也会设置本地故障状态寄存器中的一个标志,以指示故障类型。 0x0:未发生矢量捕获 0x1:发生了矢量捕获 |
| 2 | DWTTRAP | R/W | 0h | 数据观察点和跟踪 (DWT) 标志。处理器在当前指令或下一条指令处停止。 0x0:无 DWT 匹配 0x1:有 DWT 匹配 |
| 1 | BKPT | R/W | 0h | BKPT 标志。BKPT 标志由闪存补丁代码中的 BKPT 指令以及普通代码设置。返回 PC 指向包含断点的指令。 0x0:无 BKPT 指令执行 0x1:有 BKPT 指令执行 |
| 0 | HALTED | R/W | 0h | 暂停请求标志。处理器在下一条指令处暂停。 0x0:无暂停请求 0x1:NVIC 请求暂停,包括步骤 |
图 3-111 展示了 MMFAR,表 3-147 中对此进行了介绍。
返回到汇总表。
存储器管理故障地址
该寄存器用于读取导致存储器管理故障的位置的地址。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 地址 | |||||||||||||||||||||||||||||||
| R/W-X | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | 地址 | R/W | X | 存储器管理故障地址字段。 该字段是故障加载或存储尝试的数据地址。发生非对齐访问故障时,地址是出现故障的实际地址。由于访问可以拆分为多个单独对齐的部分,因此该地址可以是请求大小范围内的任何偏移。标记 CFSR.IACCVIOL、CFSR.DACCVIOL、CFSR.MUNSTKERR 和 CFSR.MSTKERR 与 CFSR.MMARVALID 一起指示故障原因。 |
图 3-112 展示了 BFAR,表 3-148 中对此进行了介绍。
返回到汇总表。
总线故障地址
该寄存器用于读取生成总线故障的位置的地址。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 地址 | |||||||||||||||||||||||||||||||
| R/W-X | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | 地址 | R/W | X | 总线故障地址字段。该字段是故障加载或存储尝试的数据地址。发生非对齐访问故障时,地址是指令请求的地址,即使该地址不是出现故障的地址。 标记 CFSR.IBUSERR、CFSR.PRECISERR、CFSR.IMPRECISERR、CFSR.UNSTKERR 和 CFSR.STKERR 与 CFSR.BFARVALID 一起指示故障原因。 |
图 3-113 展示了 AFSR,表 3-149 中对此进行了介绍。
返回到汇总表。
辅助故障状态
该寄存器用于确定向软件提供的其他系统故障信息。辅助故障上的单周期高电平信号锁存为 1。只能通过向相应位写入 1 来清除该位。CPU 的辅助故障输入连接到 0。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| IMPDEF | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | IMPDEF | R/W | 0h | 实现定义。这些位直接映射到辅助故障输入的信号分配。连接到 0 |
图 3-114 展示了 ID_PFR0,表 3-150 对其进行了介绍。
返回到汇总表。
处理器功能 0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||||||||||
| R-0h | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | STATE1 | STATE0 | |||||||||||||
| R-0h | R-3h | R-0h | |||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 7-4 | STATE1 | R | 3h | State1(T 位 = 1) 0x0:不适用 0x1:不适用 0x2:Thumb-2 编码,包含 16 位基本指令加 32 位 Buncond/BL,但不包含其他 32 位基本指令(请注意,可以使用适当的指令属性添加 32 位非基本指令,但不能添加其他 32 位基本指令。) 0x3:Thumb-2 编码,包含所有 Thumb-2 基本指令 |
| 3-0 | STATE0 | R | 0h | State0(T 位 = 0) 0x0:无 ARM 编码 0x1:不适用 |
图 3-115 展示了 ID_PFR1,表 3-151 对其进行了介绍。
返回到汇总表。
处理器功能 1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | MICROCONTROLLER_PROGRAMMERS_MODEL | ||||||
| R-0h | R-2h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||
| R-0h | |||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-12 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 11-8 | MICROCONTROLLER_PROGRAMMERS_MODEL | R | 2h | 微控制器编程模型 0x0:不支持 0x2:双栈支持 |
| 7-0 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-116 展示了 ID_DFR0,表 3-152 对其进行了介绍。
返回到汇总表。
调试功能 0
该寄存器提供调试系统的概要视图。调试架构本身可提供更多详细信息。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| MICROCONTROLLER_DEBUG_MODEL | RESERVED | ||||||
| R-1h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||
| R-0h | |||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 23-20 | MICROCONTROLLER_DEBUG_MODEL | R | 1h | 微控制器调试模型 - 存储器映射 0x0:不支持 0x1:微控制器调试 v1(ITMv1 和 DWTv1) |
| 19-0 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-117 展示了 ID_AFR0,表 3-153 对其进行了介绍。
返回到汇总表。
辅助功能 0
该寄存器为实现定义的功能提供了一定的自由度,以便对其进行注册。Cortex-M 中未使用。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-118 展示了 ID_MMFR0,表 3-154 对其进行了介绍。
返回到汇总表。
存储器模型功能 0
关于存储器模型和存储器管理支持的一般信息。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-00100030h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 00100030h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-119 展示了 ID_MMFR1,表 3-155 对其进行了介绍。
返回到汇总表。
存储器模型功能 1
关于存储器模型和存储器管理支持的一般信息。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-120 展示了 ID_MMFR2,表 3-156 对其进行了介绍。
返回到汇总表。
存储器模型功能 2
关于存储器模型和存储器管理支持的一般信息。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | WAIT_FOR_INTERRUPT_STALLING | ||||||
| R-0h | R-1h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||
| R-0h | |||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-25 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 24 | WAIT_FOR_INTERRUPT_STALLING | R | 1h | 等待中断停滞 0x0:不支持 0x1:支持等待中断 |
| 23-0 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-121 展示了 ID_MMFR3,表 3-157 对其进行了介绍。
返回到汇总表。
存储器模型功能 3
关于存储器模型和存储器管理支持的一般信息。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-122 展示了 ID_ISAR0,表 3-158 对其进行了介绍。
返回到汇总表。
ISA 功能 0
有关指令集属性寄存器的信息
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-01101110h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 01101110h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-123 展示了 ID_ISAR1,表 3-159 对其进行了介绍。
返回到汇总表。
ISA 功能 1
有关指令集属性寄存器的信息
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-02112000h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 02112000h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-124 展示了 ID_ISAR2,表 3-160 对其进行了介绍。
返回到汇总表。
ISA 功能 2
有关指令集属性寄存器的信息
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-21232231h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 21232231h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-125 展示了 ID_ISAR3,表 3-161 对其进行了介绍。
返回到汇总表。
ISA 功能 3
有关指令集属性寄存器的信息
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-01111131h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 01111131h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-126 展示了 ID_ISAR4,表 3-162 对其进行了介绍。
返回到汇总表。
ISA 功能 4
有关指令集属性寄存器的信息
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R-01310132h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R | 01310132h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-127 展示了 CPACR,表 3-163 中对此进行了介绍。
返回到汇总表。
协处理器访问控制
该寄存器指定协处理器的访问权限。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-128 展示了 MPU_TYPE,表 3-164 中对此进行了介绍。
返回到汇总表。
MPU 类型
该寄存器指示 MPU 支持的多个区域。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| IREGION | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DREGION | |||||||
| R-8h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SEPARATE | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | 读为 0。 |
| 23-16 | IREGION | R | 0h | 处理器内核仅使用统一的 MPU,该字段的读值始终为 0x0。 |
| 15-8 | DREGION | R | 8h | 受支持 MPU 区域的数量字段。该字段读值为 0x08,表示八个 MPU 区域。 |
| 7-1 | RESERVED | R | 0h | 读为 0。 |
| 0 | SEPARATE | R | 0h | 处理器内核仅使用统一的 MPU,因此该字段始终为 0。 |
图 3-129 展示了 MPU_CTRL,表 3-165 中对此进行了介绍。
返回到汇总表。
MPU 控制
该寄存器用于使能 MPU、使能默认存储器映射(背景区域),以及在硬故障、不可屏蔽中断 (NMI) 和 FAULTMASK 升级处理程序中使能 MPU。除非设置了 PRIVDEFENA 位,否则启用 MPU 后,必须启用存储器映射的至少一个区域才能使 MPU 正常工作。如果设置了 PRIVDEFENA 位且未启用任何区域,则只有特权代码可以运行。禁用 MPU 后,将使用默认地址映射,就像不存在 MPU 一样。启用 MPU 后,只有系统分区和矢量表加载可以始终访问。根据区域以及是否启用了 PRIVDEFENA,可以访问其他区域。除非设置了 HFNMIENA,否则当异常优先级为 -1 或 -2 时,MPU 不会启用。仅当处于硬故障、NMI 或 FAULTMASK 已启用时,这些优先级才可行。HFNMIENA 位在以这两个优先级运行时启用 MPU。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | PRIVDEFENA | HFNMIENA | ENABLE | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-3 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 2 | PRIVDEFENA | R/W | 0h | 当 MPU 启用时,该位启用默认存储器映射作为背景区域,用于特权访问。背景区域的作用相当于任何可设置区域之前的 1 号区域。配置的任何区域都会覆盖该默认映射,并覆写该映射。如果未设置该位,则禁用默认存储器映射,并且未被区域覆盖的存储器会发生故障。这适用于存储器类型、从不执行 (XN)、缓存和可共享规则。但是,这仅适用于特权模式(获取和数据访问)。除非已为其代码和数据配置区域,否则用户模式代码会导致故障。MPU 禁用时,默认映射同时作用于特权模式和用户模式代码。无论是否设置了此使能,XN 和 SO 规则始终应用于系统分区。如果 MPU 禁用,则忽略该位。 |
| 1 | HFNMIENA | R/W | 0h | 在处于硬故障、NMI 和 FAULTMASK 升级处理程序中时,该位会启用 MPU。如果设置了该位和 ENABLE 位,则在这些处理程序中 MPU 会被启用。如果未设置该位,则无论 ENABLE 位的值如何,在这些处理程序中都会禁用 MPU。如果设置了该位且未设置 ENABLE 位,则行为不可预测。 |
| 0 | ENABLE | R/W | 0h | 使能 MPU 0:禁用 MPU 1:MPU 启用 |
图 3-130 展示了 MPU_RNR,表 3-166 中对此进行了介绍。
返回到汇总表。
MPU 区域编号
该寄存器用于选择访问哪个保护区域。对 MPU_RASR 或 MPU_RBAR 的以下写入会配置该寄存器选择的保护区域的特性。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 区域 | ||||||||||||||||||||||||||||||
| R/W-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 7-0 | 区域 | R/W | 0h | 区域选择字段。 使用 MPU_RASR 和 MPU_RBAR 时,该字段选择要在其上运行的区域。必须首先写入该位,除非同时写入地址 MPU_RBAR.VALID 和 MPU_RBAR.REGION 字段,此时会覆盖该位。 |
图 3-131 展示了 MPU_RBAR,表 3-167 中对此进行了介绍。
返回到汇总表。
MPU 区域基地址
该寄存器写入区域的基地址。它还包含一个 REGION 字段,如果设置了 VALID 位,则可以使用该字段来覆写 MPU_RNR.REGION。该寄存器设置区域的基地址。它按大小对齐。因此,64KB 大小的区域必须按 64KB 的倍数对齐,例如 0x00010000 或 0x00020000。区域始终回读为当前 MPU 区域编号。VALID 始终回读为 0。写入 VALID = 1 和 REGION = n 会将区域编号更改为 n。这是写入 MPU_RNR 的简短方法。如果不是作为字访问,则该寄存器的行为不可预测。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| ADDR | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ADDR | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| ADDR | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ADDR | 有效 | 区域 | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-5 | ADDR | R/W | 0h | 区域基地址字段。 LSB 的位置取决于区域大小,因此基地址会根据大小的偶数倍对齐。MPU 区域属性和大小寄存器中 SZENABLE 字段指定的 2 的幂次大小决定了基地址中有多少位被使用。 |
| 4 | 有效 | R/W | 0h | MPU 区域编号有效位: 0:MPU_RNR 保持不变并被解释。 1:MPU_RNR 被 REGION 覆写。 |
| 3-0 | 区域 | R/W | 0h | MPU 区域覆写字段 |
图 3-132 展示了 MPU_RASR,表 3-168 中对此进行了介绍。
返回到汇总表。
MPU 区域属性和大小
该寄存器控制 MPU 访问权限。该寄存器由两子寄存器组成,每个寄存器具有半字大小。可以使用半字大小来访问这些寄存器,也可以使用字操作同时访问这两个寄存器。32 字节、64 字节和 128 字节区域大小不支持子区域禁用位。使用这些区域大小时,子区域禁用位必须编程为 0。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | XN | RESERVED | AP | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | TEX | S | C | B | |||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SRD | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 尺寸 | ENABLE | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-29 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 28 | XN | R/W | 0h | 指令访问禁用: 0:启用指令获取 1:禁用指令获取 |
| 27 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 26-24 | AP | R/W | 0h | 数据访问权限: 0x0:特权权限:无访问。用户权限:无访问。 0x1:特权权限:读-写。用户权限:无访问。 0x2:特权权限:读-写。用户权限:只读。 0x3:特权权限:读-写。用户权限:读-写 0x4:保留 0x5:特权权限:只读。用户权限:无访问。 0x6:特权权限:只读。用户权限:只读。 0x7:特权权限:只读。用户权限:只读。 |
| 23-22 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 21-19 | TEX | R/W | 0h | 类型扩展 |
| 18 | S | R/W | 0h | 可共享位: 0:不可共享 1:可共享 |
| 17 | C | R/W | 0h | 可缓存位: 0:不可缓存 1:可缓存 |
| 16 | B | R/W | 0h | 可缓冲位: 0:不可缓冲 1:可缓冲 |
| 15-8 | SRD | R/W | 0h | 子区域禁用字段: 设置该字段中的某个位会禁用相应的子区域。区域分为八个大小相同的子区域。128 字节及以下区域大小不支持子区域。 |
| 7-6 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5-1 | 尺寸 | R/W | 0h | MPU 保护区域大小字段: 0x04:32B 0x05:64B 0x06:128B 0x07:256B 0x08:512B 0x09:1KB 0x0A:2KB 0x0B:4KB 0x0C:8KB 0x0D:16KB 0x0E:32KB 0x0F:64KB 0x10:128KB 0x11:256KB 0x12:512KB 0x13:1MB 0x14:2MB 0x15:4MB 0x16:8MB 0x17:16MB 0x18:32MB 0x19:64MB 0x1A:128MB 0x1B:256MB 0x1C:512MB 0x1D:1GB 0x1E:2GB 0x1F:4GB |
| 0 | ENABLE | R/W | 0h | 区域使能位: 0:禁用区域 1:启用区域 |
图 3-133 展示了 MPU_RBAR_A1,表 3-169 对其进行了介绍。
返回到汇总表。
MPU 别名 1 区域基地址
MPU_RBAR 的别名
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MPU_RBAR_A1 | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | MPU_RBAR_A1 | R/W | 0h | MPU_RBAR 的别名 |
图 3-134 展示了 MPU_RASR_A1,表 3-170 对其进行了介绍。
返回到汇总表。
MPU 别名 1 区域属性和大小
MPU_RASR 的别名
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MPU_RASR_A1 | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | MPU_RASR_A1 | R/W | 0h | MPU_RASR 的别名 |
图 3-135 展示了 MPU_RBAR_A2,表 3-171 中对此进行了介绍。
返回到汇总表。
MPU 别名 2 区域基地址
MPU_RBAR 的别名
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MPU_RBAR_A2 | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | MPU_RBAR_A2 | R/W | 0h | MPU_RBAR 的别名 |
图 3-136 展示了 MPU_RASR_A2,表 3-172 对其进行了介绍。
返回到汇总表。
MPU 别名 2 区域属性和大小
MPU_RASR 的别名
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MPU_RASR_A2 | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | MPU_RASR_A2 | R/W | 0h | MPU_RASR 的别名 |
图 3-137 展示了 MPU_RBAR_A3,表 3-173 对其进行了介绍。
返回到汇总表。
MPU 别名 3 区域基地址
MPU_RBAR 的别名
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MPU_RBAR_A3 | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | MPU_RBAR_A3 | R/W | 0h | MPU_RBAR 的别名 |
图 3-138 展示了 MPU_RASR_A3,表 3-174 对其进行了介绍。
返回到汇总表。
MPU 别名 3 区域属性和大小
MPU_RASR 的别名
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MPU_RASR_A3 | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | MPU_RASR_A3 | R/W | 0h | MPU_RASR 的别名 |
图 3-139 展示了 DHCSR,表 3-175 中对此进行了介绍。
返回到汇总表。
调试暂停控制和状态
该寄存器的目的是提供有关处理器状态的状态信息、使能内核调试,以及暂停和逐步执行处理器。对于写操作,必须向该寄存器的高半字写入 0xA05F,否则写操作会被忽略,并且不会向寄存器写入任何位。如果未启用暂停模式,则 C_DEBUGEN = 1,所有其他字段均被禁用。该寄存器不会在内核复位时复位,而是由上电复位操作复位。但是,C_HALT 始终会在内核复位时清除。若要在复位时暂停,必须启用以下位:DEMCR.VC_CORERESET 和 C_DEBUGEN。请注意,对该寄存器进行非字大小的写入都会产生不可预测的结果。可以用任何大小读取该寄存器,这可用于避免或有意更改粘滞位。
在 CPU 处于暂停状态时(即 C_DEBUGEN = 1 且 S_HALT= 1)对该寄存器进行写操作时的系统行为:
C_HALT = 0、C_STEP = 0、C_MASKINTS = 0 退出调试状态并开始指令执行。异常根据异常配置规则激活。
C_HALT = 0、C_STEP = 0、C_MASKINTS = 1 退出调试状态并开始指令执行。PendSV、SysTick 和外部可配置中断均被禁用,否则异常会根据标准配置规则激活。
C_HALT = 0、C_STEP = 1、C_MASKINTS = 0 退出调试状态、逐步执行指令并暂停。异常根据异常配置规则激活。
C_HALT = 0、C_STEP = 1、C_MASKINTS = 1 退出调试状态、逐步执行指令并暂停。PendSV、SysTick 和外部可配置中断均被禁用,否则异常会根据标准配置规则激活。
C_HALT = 1、C_STEP = x、C_MASKINTS = x 保持调试状态
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | S_RESET_ST | S_RETIRE_ST | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | S_LOCKUP | S_SLEEP | S_HALT | S_REGRDY | |||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-X | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | C_SNAPSTALL | RESERVED | C_MASKINTS | C_STEP | C_HALT | C_DEBUGEN | |
| R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-26 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。 写入该寄存器时,必须向该位字段写入 0x28,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 25 | S_RESET_ST | R/W | 0h | 表示自上次读取该位以来内核已复位或现在正在复位。这是一个粘滞位,将在读取后清除。因此,读取两次并先变为 1 后变为 0 表示它已被复位。读取两次并两次变为 1 表示现在正在复位(仍保持在复位状态)。 写入该寄存器时,必须向该位字段写入 0,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 24 | S_RETIRE_ST | R/W | 0h | 表示自上次读取后有一条指令已完成。这是一个粘滞位,将在读取后清除。可以用于确定内核是在加载/存储还是获取时停滞。 写入该寄存器时,必须向该位字段写入 0,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 23-20 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。 写入该寄存器时,必须向该位字段写入 0x5,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 19 | S_LOCKUP | R/W | 0h | 如果内核正在运行(未暂停)并且存在锁定条件,则读为 1。 写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 18 | S_SLEEP | R/W | 0h | 表示内核正处于睡眠状态(WFI、WFE 或 **SLEEP-ON-EXIT**)。必须使用 C_HALT 来获得控制或等待中断唤醒。 写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 17 | S_HALT | R/W | 0h | 设置该位时,内核处于调试状态。 写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 16 | S_REGRDY | R/W | X | 调试内核寄存器选择器寄存器上的寄存器读/写操作可用。上次传输已完成。 写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。 |
| 15-6 | RESERVED | R | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 5 | C_SNAPSTALL | R/W | 0h | 如果内核在加载/存储操作时停滞,则停滞结束,并且指令会被强制完成。这会使能暂停调试,以获得对内核的控制。只能在以下情况下设置:C_DEBUGEN = 1 且 C_HALT = 1。内核将 S_RETIRE_ST 读为 0。这表示没有指令推进,可以防止误用。使用该位时,总线状态不可预测。S_RETIRE_ST 可检测加载/存储操作中的内核停滞。 |
| 4 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 3 | C_MASKINTS | R/W | 0h | 在逐步执行时或暂停调试模式下屏蔽中断。该屏蔽不会影响由指令执行引起的 NMI、故障异常和 SVC。仅当处理器处于暂停状态 (S_HALT = 1) 时,才能修改该位。在解除暂停之前,必须设置或清除 C_MASKINTS(即,设置或清除 C_MASKINTS 以及设置或清除 C_HALT 的写操作必须分开进行)。在系统运行且启用了暂停调试支持(C_DEBUGEN = 1、S_HALT = 0)时修改 C_MASKINTS 可能会导致不可预测的行为。 |
| 2 | C_STEP | R/W | 0h | 在暂停调试模式下逐步执行内核。在 C_DEBUGEN = 0 时,该位无影响。只能在处理器处于暂停状态 (S_HALT = 1) 时修改。 在系统运行且启用了暂停调试支持(C_DEBUGEN = 1、S_HALT = 0)时修改 C_STEP 可能会导致不可预测的行为。 |
| 1 | C_HALT | R/W | 0h | 暂停内核。当内核暂停时,会自动设置该位。例如断点。该位会在内核复位时清除。 |
| 0 | C_DEBUGEN | R/W | 0h | 使能调试。该位只能由 AHB-AP 写入,而不能由内核写入。由内核写入时无法设置或清除,因此会被忽略。写入 C_HALT 以使自身暂停时,内核必须向该位写入 1。 C_DEBUGEN = 0 时,C_HALT、C_STEP 和 C_MASKINTS 的值会被硬件忽略。C_DEBUGEN = 0 时,C_HALT、C_STEP 和 C_MASKINTS 字段的读取值对于软件来说是未知的。 |
图 3-140 展示了 DCRSR,表 3-176 中对此进行了介绍。
返回到汇总表。
调试内核寄存器选择器
该寄存器的用途是选择要与其进行数据传输的处理器寄存器。该只写寄存器会生成与内核的握手,以便与调试内核寄存器数据寄存器和所选寄存器进行数据传输。在该内核事务完成之前,DHCSR.S_REGRDY 为 0。请注意,对该寄存器进行非字大小写操作会产生不可预测的结果。
请注意,通过这种方式可以完全访问 PSR 寄存器,而在使用 MRS 指令时某些寄存器会读为 0。请注意,所有位都可写入,但在恢复执行时,某些组合会导致故障。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| W-X | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | REGWNR | ||||||
| W-X | W-X | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| W-X | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | REGSEL | ||||||
| W-X | W-X | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-17 | RESERVED | W | X | 软件不应依赖保留位的值。写入 0。 |
| 16 | REGWNR | W | X | 1:写入 0:读取 |
| 15-5 | RESERVED | W | X | 软件不应依赖保留位的值。写入 0。 |
| 4-0 | REGSEL | W | X | 寄存器选择 0x00:R0 0x01:R1 0x02:R2 0x03:R3 0x04:R4 0x05:R5 0x06:R6 0x07:R7 0x08:R8 0x09:R9 0x0A:R10 0x0B:R11 0x0C:R12 0x0D:当前 SP 0x0E:LR 0x0F:DebugReturnAddress 0x10:XPSR/标志、执行状态信息和异常编号 0x11:MSP(主 SP) 0x12:PSP(进程 SP) 0x14: CONTROL<<24 | FAULTMASK<<16 | BASEPRI<<8 | PRIMASK |
图 3-141 展示了 DCRDR,表 3-177 中对此进行了介绍。
返回到汇总表。
调试内核寄存器数据
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DCRDR | |||||||||||||||||||||||||||||||
| R/W-X | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DCRDR | R/W | X | 该寄存器保存与处理器之间进行寄存器读写操作的数据。这是写入 DCRSR 所选寄存器的数据值。当处理器接收到来自 DCRSR 的请求时,处理器会使用正常的负载存储单元操作读取或写入该寄存器。如果未执行内核寄存器传输,则基于软件的调试监视器可以使用该寄存器在非暂停调试中进行通信。这使得标志和位能够确认状态,并指示命令是否已被接收、已被回复,或已被接收并回复。 |
图 3-142 展示了 DEMCR,表 3-178 中对此进行了介绍。
返回到汇总表。
调试异常和监视器控制
该寄存器的用途是矢量捕获和调试监视器控制。该寄存器在调试时管理异常行为。矢量捕获仅可用于暂停调试。高半字用于监视器控制,低半字用于暂停异常支持。该寄存器不会在系统复位时复位,而是通过上电复位操作复位。在内核复位时,始终清除字段 MON_EN、MON_PEND、MON_STEP 和 MON_REQ。调试监视器由软件在复位处理程序中或之后启用,或通过 **AHB-AP** 端口启用。矢量捕获是半同步的。检测到匹配的事件时,会请求暂停。由于处理器只能在指令边界处暂停,因此必须等到下一个指令边界。因此,它会在异常处理程序的第一条指令处停止。但是,触发矢量捕获后,存在两种特殊情况:1.如果在矢量读取或堆栈推送错误期间出现故障,则暂停发生在矢量错误或栈推送的相应故障处理程序上。2.如果在矢量读取或堆栈推送错误期间检测到延迟到达的中断,则不会响应该中断。也就是说,在这种情况下,支持延迟到达优化的实现方案必须抑制该中断。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | TRCENA | ||||||
| R/W-0h | R/W-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | MON_REQ | MON_STEP | MON_PEND | MON_EN | |||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | VC_HARDERR | VC_INTERR | VC_BUSERR | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VC_STATERR | VC_CHKERR | VC_NOCPERR | VC_MMERR | RESERVED | VC_CORERESET | ||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-25 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 24 | TRCENA | R/W | 0h | 该位必须设置为 1 才能启用跟踪和调试块:DWT、ITM、ETM 和 TPIU。除非需要跟踪,否则该位使能对电源使用情况的控制。应用中可以启用该位,用于 ITM 或由调试器使用。 |
| 23-20 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 19 | MON_REQ | R/W | 0h | 该位使能监视器,以识别唤醒方式。内核复位时会清除该位。 0x0:由调试异常唤醒。 0x1:由 MON_PEND 唤醒 |
| 18 | MON_STEP | R/W | 0h | MON_EN = 1 时,逐步执行内核。MON_EN = 0 时,忽略该位。 该位与 DHCSR.C_STEP 等效。中断仅根据监视器的优先级以及 PRIMASK、FAULTMASK 或 BASEPRI 的设置来逐步执行。 |
| 17 | MON_PEND | R/W | 0h | 挂起监视器,待优先级允许时再激活。可以通过 AHB-AP 端口唤醒监视器。该位等效于用于监视器调试的 DHCSR.C_HALT。该寄存器不会在系统复位时复位,而只能通过上电复位操作复位。调试监视器必须由软件在复位处理程序中或之后启用,或由 DAP 启用。 |
| 16 | MON_EN | R/W | 0h | 使能调试监视器。 启用后,系统处理程序优先级寄存器控制其优先级。如果禁用,则所有调试事件都进入硬故障状态。DHCSR.C_DEBUGEN 覆写该位。矢量捕获是半同步的。检测到匹配的事件时,会请求暂停。由于处理器只能在指令边界处暂停,因此必须等到下一个指令边界。因此,它会在异常处理程序的第一条指令处停止。但是,触发矢量捕获后,存在两种特殊情况:1.如果在矢量查找、矢量读取或堆栈推送错误期间发生故障,则会在相应的故障处理程序上针对矢量错误或堆栈推送发生暂停。2.如果在矢量查找过程中出现延迟到达的中断,则不会响应该中断。也就是说,在这种情况下,支持延迟到达优化的实现方案必须抑制该中断。 |
| 15-11 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 10 | VC_HARDERR | R/W | 0h | 硬故障时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 9 | VC_INTERR | R/W | 0h | 异常进入或返回序列期间发生故障时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 8 | VC_BUSERR | R/W | 0h | 正常总线错误时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 7 | VC_STATERR | R/W | 0h | 使用故障状态错误时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 6 | VC_CHKERR | R/W | 0h | 使用故障启用检查错误时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 5 | VC_NOCPERR | R/W | 0h | 对协处理器进行使用故障访问时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 4 | VC_MMERR | R/W | 0h | 存储器管理故障时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。 |
| 3-1 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 0 | VC_CORERESET | R/W | 0h | 重置矢量捕捉。如果发生内核复位,则暂停正在运行的系统。DHCSR.C_DEBUGEN 被清除时忽略。 |
图 3-143 展示了 STIR,表 3-179 中对此进行了介绍。
返回到汇总表。
软件触发中断
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | INTID | ||||||||||||||||||||||||||||||
| W-0h | W-X | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-9 | RESERVED | W | 0h | 软件不应依赖保留位的值。写入 0。 |
| 8-0 | INTID | W | X | 中断 ID 字段。向该位字段写入值,等同于通过在 NVIC_ISPR0 或 NVIC_ISPR1 中的中断设置挂起寄存器中设置相应的中断位来手动挂起中断。 |
图 3-144 展示了 FPCCR,表 3-180 中对此进行了介绍。
返回到汇总表。
浮点上下文控制
该寄存器保存用于浮点单元的控制数据。只能由特权软件访问。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| ASPEN | LSPEN | RESERVED | |||||
| R/W-1h | R/W-1h | R/W-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | MONRDY | ||||||
| R/W-0h | R/W-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | BFRDY | MMRDY | HFRDY | THREAD | RESERVED | USER | LSPACT |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | ASPEN | R/W | 1h | 自动状态保留使能。 设置该位将导致在执行浮点指令时设置特殊控制寄存器 (FPCA) 的位 [2],从而导致在异常进入时自动保留浮点状态。 |
| 30 | LSPEN | R/W | 1h | 惰性状态保留使能。 惰性状态保留是指处理器执行上下文保存时,保留堆栈上的空间用于浮点状态,但直到新的上下文执行浮点运算后才会压栈。 0:禁用浮点上下文的自动惰性状态保留。 1:启用浮点上下文的自动惰性状态保留。 |
| 29-9 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 8 | MONRDY | R/W | 0h | 指示在处理器分配了浮点栈帧时,执行的软件是否能够将调试监视器异常设置为挂起。 0:分配了浮点栈帧时,调试监视器禁用或优先级不允许设置 DEMCR.MON_PEND。 1:分配了浮点栈帧时,调试监视器启用且优先级允许设置 DEMCR.MON_PEND。 |
| 7 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 6 | BFRDY | R/W | 0h | 指示在处理器分配了浮点栈帧时,执行的软件是否能够将总线故障异常设置为挂起。 0:分配了浮点栈帧时,总线故障禁用或优先级不允许将总线故障处理程序设置为挂起状态。 1:分配了浮点栈帧时,总线故障启用且优先级允许将总线故障处理程序设置为挂起状态。 |
| 5 | MMRDY | R/W | 0h | 指示在处理器分配了浮点栈帧时,执行的软件是否能够将存储器管理异常设置为挂起。 0:分配了浮点栈帧时,存储器管理禁用或优先级不允许将存储器管理处理程序设置为挂起状态。 1: 分配了浮点栈帧时,存储器管理启用且优先级允许将存储器管理处理程序设置为挂起状态。 |
| 4 | HFRDY | R/W | 0h | 指示在处理器分配了浮点栈帧时,执行的软件是否能够将硬故障异常设置为挂起。 0:分配了浮点栈帧时,优先级不允许将硬故障处理程序设置为挂起状态。 1: 分配了浮点栈帧时,优先级允许将硬故障处理程序设置为挂起状态。 |
| 3 | THREAD | R/W | 0h | 指示分配了浮点栈帧时的处理器模式为线程模式。 0:分配了浮点栈帧时,模式不是线程模式。 1:分配了浮点栈帧时,模式是线程模式。 |
| 2 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 1 | USER | R/W | 0h | 指示在处理器分配了浮点栈帧时,执行软件的权限级别为用户(非特权): 0:分配了浮点栈帧时,权限级别不是用户。 1:分配了浮点栈帧时,权限级别是用户。 |
| 0 | LSPACT | R/W | 0h | 指示浮点的惰性状态保留是否处于活动状态: 0:惰性状态保留处于非活动状态。 1:惰性状态保留处于活动状态。浮点栈帧已分配,但其保存状态已延迟。 |
图 3-145 展示了 FPCAR,表 3-181 中对此进行了介绍。
返回到汇总表。
浮点上下文地址
该寄存器保存在异常栈帧上分配的未填充浮点寄存器空间的位置。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| 地址 | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| 地址 | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| 地址 | |||||||
| R/W-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 地址 | RESERVED | ||||||
| R/W-0h | R/W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-2 | 地址 | R/W | 0h | 保存在异常栈帧上分配的未填充浮点寄存器空间的(双字对齐)位置。 |
| 1-0 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-146 展示了 FPDSCR,表 3-182 中对此进行了介绍。
返回到汇总表。
浮点默认状态控制
该寄存器保存浮点状态控制数据的默认值,该数据是处理器在创建新的浮点上下文时分配给 FPSCR 的。只能由特权软件访问。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | AHP | DN | FZ | RMODE | RESERVED | ||||||||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||
| R/W-0h | |||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-27 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
| 26 | AHP | R/W | 0h | 备用半精度位的默认值。(如果该位设置为 1,则选择备用半精度格式)。 |
| 25 | DN | R/W | 0h | 默认 NaN 模式位的默认值。(如果该位设置为 1,则任何涉及一个或多个 NaN 的操作都会返回默认 NaN)。 |
| 24 | FZ | R/W | 0h | 刷新到零模式位的默认值。(如果该位设置为 1,则刷新到零模式启用)。 |
| 23-22 | RMODE | R/W | 0h | 舍入模式控制字段的默认值。(该字段的编码为: 0b00 四舍五入 (RN) 模式 0b01 舍入到正无穷 (RP) 模式 0b10 舍入到负无穷 (RM) 模式 0b11 舍入到零 (RZ) 模式。 几乎所有浮点指令都会使用指定的舍入模式)。 |
| 21-0 | RESERVED | R/W | 0h | 软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。 |
图 3-147 展示了 MVFR0,表 3-183 对其进行了介绍。
返回到汇总表。
媒体和浮点功能 0
描述了浮点扩展提供的功能。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| FP_ROUNDING_MODES | SHORT_VECTORS | ||||||
| R-1h | R-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SQUARE_ROOT | 分频值 | ||||||
| R-1h | R-1h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| FP_EXCEPTION_TRAPPING | DOUBLE_PRECISION | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SINGLE_PRECISION | A_SIMD | ||||||
| R-2h | R-1h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-28 | FP_ROUNDING_MODES | R | 1h | 指示 FP 浮点硬件支持的舍入模式。该字段的值为:0b0001 - 支持所有舍入模式。 |
| 27-24 | SHORT_VECTORS | R | 0h | 指示对 FP 短矢量的硬件支持。该字段的值为:0b0000 - 不支持。 |
| 23-20 | SQUARE_ROOT | R | 1h | 指示对 FP 平方根运算的硬件支持。该字段的值为:0b0001 - 支持。 |
| 19-16 | 分频值 | R | 1h | 指示对 FP 除法运算的硬件支持。该字段的值为:0b0001 - 支持。 |
| 15-12 | FP_EXCEPTION_TRAPPING | R | 0h | 指示 FP 硬件实现是否支持异常触发。该字段的值为:0b0000 - 不支持。 |
| 11-8 | DOUBLE_PRECISION | R | 0h | 指示对 FP 双精度运算的硬件支持。该字段的值为:0b0000 - 不支持。 |
| 7-4 | SINGLE_PRECISION | R | 2h | 指示对 FP 单精度运算的硬件支持。该字段的值为:0b0010 - 支持。 |
| 3-0 | A_SIMD | R | 1h | 指示 FP 寄存器组的大小。该字段的值为:0b0001 - 支持,16 x 64 位寄存器。 |
图 3-148 展示了 MVFR1,表 3-184 对其进行了介绍。
返回到汇总表。
媒体和浮点功能 1
描述了浮点扩展提供的功能。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FP_FUSED_MAC | FP_HPFP | RESERVED | |||||||||||||
| R-1h | R-1h | R-0h | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | D_NAN_MODE | FTZ_MODE | |||||||||||||
| R-0h | R-1h | R-1h | |||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-28 | FP_FUSED_MAC | R | 1h | 指示 FP 是否支持融合乘加运算。该字段的值为:0b0001 - 支持。 |
| 27-24 | FP_HPFP | R | 1h | 指示 FP 是否支持半精度浮点转换运算。该字段的值为:0b0001 - 支持。 |
| 23-8 | RESERVED | R | 0h | 软件不应依赖保留位的值。 |
| 7-4 | D_NAN_MODE | R | 1h | 指示 FP 硬件实现是否仅支持默认 NaN 模式。该字段的值为:0b0001 - 硬件支持 NaN 值的传播。 |
| 3-0 | FTZ_MODE | R | 1h | 指示 FP 硬件实现是否仅支持刷新到零模式运算。该字段的值为:0b0001 - 硬件支持完整的去规范化数运算。 |