ZHDU116G January   2018  – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1

 

  1.   1
  2.   使用前必读
    1.     关于本手册
    2.     器件
    3.     寄存器、字段和位调用
    4.     相关文档
    5. 1.1 商标
  3. 结构概述
    1. 2.1 目标应用
    2. 2.2 概述
    3. 2.3 功能概述
      1. 2.3.1  Arm® Cortex®-M4F
        1. 2.3.1.1 处理器内核
        2. 2.3.1.2 系统计时器 (SysTick)
        3. 2.3.1.3 嵌套向量中断控制器 (NVIC)
        4. 2.3.1.4 系统控制块
      2. 2.3.2  片上存储器
        1. 2.3.2.1 SRAM
        2. 2.3.2.2 闪存存储器
        3. 2.3.2.3 ROM
      3. 2.3.3  无线电
      4. 2.3.4  安全内核
      5. 2.3.5  通用计时器
        1. 2.3.5.1 看门狗计时器
        2. 2.3.5.2 常开域
      6. 2.3.6  直接存储器存取
      7. 2.3.7  系统控制和时钟
      8. 2.3.8  串行通信外设
        1. 2.3.8.1 UART
        2. 2.3.8.2 I2C
        3. 2.3.8.3 I2S
        4. 2.3.8.4 SSI
      9. 2.3.9  可编程 I/O
      10. 2.3.10 传感器控制器
      11. 2.3.11 随机数生成器
      12. 2.3.12 cJTAG 及 JTAG
      13. 2.3.13 电源系统
        1. 2.3.13.1 电源系统
          1. 2.3.13.1.1 VDDS
          2. 2.3.13.1.2 VDDR
          3. 2.3.13.1.3 数字内核电源
          4. 2.3.13.1.4 其他内部电源
        2. 2.3.13.2 直流/直流转换器
  4. Arm® Cortex®-M4F 处理器
    1. 3.1 Arm® Cortex®-M4F 处理器简介
    2. 3.2 方框图
    3. 3.3 概述
      1. 3.3.1 系统级接口
      2. 3.3.2 集成可配置调试
      3. 3.3.3 跟踪端口接口单元
      4. 3.3.4 浮点单元 (FPU)
      5. 3.3.5 存储器保护单元 (MPU)
      6. 3.3.6 Arm® Cortex®-M4F 系统组件详情
    4. 3.4 编程模型
      1. 3.4.1 软件执行的处理器模式和特权等级
      2. 3.4.2
      3. 3.4.3 异常和中断
      4. 3.4.4 数据类型
    5. 3.5 Arm® Cortex®-M4F 内核寄存器
      1. 3.5.1 内核寄存器映射
      2. 3.5.2 内核寄存器描述
        1. 3.5.2.1  Cortex® 通用寄存器 0 (R0)
        2. 3.5.2.2  Cortex® 通用寄存器 1 (R1)
        3. 3.5.2.3  Cortex® 通用寄存器 2 (R2)
        4. 3.5.2.4  Cortex® 通用寄存器 3 (R3)
        5. 3.5.2.5  Cortex® 通用寄存器 4 (R4)
        6. 3.5.2.6  Cortex® 通用寄存器 5 (R5)
        7. 3.5.2.7  Cortex® 通用寄存器 6 (R6)
        8. 3.5.2.8  Cortex® 通用寄存器 7 (R7)
        9. 3.5.2.9  Cortex® 通用寄存器 8 (R8)
        10. 3.5.2.10 Cortex® 通用寄存器 9 (R9)
        11. 3.5.2.11 Cortex® 通用寄存器 10 (R10)
        12. 3.5.2.12 Cortex® 通用寄存器 11 (R11)
        13. 3.5.2.13 Cortex® 通用寄存器 12 (R12)
        14. 3.5.2.14 栈指针 (SP)
        15. 3.5.2.15 链接寄存器 (LR)
        16. 3.5.2.16 程序计数器 (PC)
        17. 3.5.2.17 程序状态寄存器 (PSR)
        18. 3.5.2.18 优先级屏蔽寄存器 (PRIMASK)
        19. 3.5.2.19 故障屏蔽寄存器 (FAULTMASK)
        20. 3.5.2.20 基址优先级屏蔽寄存器 (BASEPRI)
        21. 3.5.2.21 控制寄存器 (CONTROL)
    6. 3.6 指令集概要
      1. 3.6.1 Arm® Cortex®-M4F 指令
      2. 3.6.2 加载和存储时序
      3. 3.6.3 与其他 Cortex® 处理器实现二进制兼容
    7. 3.7 浮点单元 (FPU)
      1. 3.7.1 关于 FPU
      2. 3.7.2 FPU 功能说明
        1. 3.7.2.1 FPU 寄存器组的视图
        2. 3.7.2.2 运行模式
          1. 3.7.2.2.1 完全合规模式
          2. 3.7.2.2.2 清零模式
          3. 3.7.2.2.3 默认 NaN 模式
        3. 3.7.2.3 FPU 指令集
        4. 3.7.2.4 符合 IEEE 754 标准
        5. 3.7.2.5 完全实现 IEEE 754 标准
        6. 3.7.2.6 IEEE 754 标准实现选择
          1. 3.7.2.6.1 NaN 处理
          2. 3.7.2.6.2 对比
          3. 3.7.2.6.3 下溢
        7. 3.7.2.7 异常
      3. 3.7.3 FPU 编程器模型
        1. 3.7.3.1 使能 FPU
          1. 3.7.3.1.1 启用 FPU
    8. 3.8 存储器保护单元 (MPU)
      1. 3.8.1 关于 MPU
      2. 3.8.2 MPU 功能说明
      3. 3.8.3 MPU 编程器模型
    9. 3.9 Arm® Cortex®-M4F 处理器寄存器
      1. 3.9.1 CPU_DWT 寄存器
      2. 3.9.2 CPU_FPB 寄存器
      3. 3.9.3 CPU_ITM 寄存器
      4. 3.9.4 CPU_SCS 寄存器
      5. 3.9.5 CPU_TPIU 寄存器
  5. 存储器映射
    1. 4.1 存储器映射
  6. Arm® Cortex®-M4F 外设
    1. 5.1 Arm® Cortex®-M4F 外设介绍
    2. 5.2 功能说明
      1. 5.2.1 SysTick
      2. 5.2.2 NVIC
        1. 5.2.2.1 电平敏感中断和脉冲中断
        2. 5.2.2.2 中断的硬件和软件控制
      3. 5.2.3 SCB
      4. 5.2.4 ITM
      5. 5.2.5 FPB
      6. 5.2.6 TPIU
      7. 5.2.7 DWT
  7. 中断和事件
    1. 6.1 异常模型
      1. 6.1.1 异常状态
      2. 6.1.2 异常类型
      3. 6.1.3 异常处理程序
      4. 6.1.4 矢量表
      5. 6.1.5 异常优先级
      6. 6.1.6 中断优先级分组
      7. 6.1.7 异常进入和返回
        1. 6.1.7.1 异常进入
        2. 6.1.7.2 异常返回
    2. 6.2 故障处理
      1. 6.2.1 故障类型
      2. 6.2.2 故障升级和硬故障
      3. 6.2.3 故障状态寄存器和故障地址寄存器
      4. 6.2.4 锁定
    3. 6.3 事件结构
      1. 6.3.1 简介
      2. 6.3.2 事件结构概述
        1. 6.3.2.1 寄存器
    4. 6.4 AON 事件结构
      1. 6.4.1 通用输入事件列表
      2. 6.4.2 事件订阅者
        1. 6.4.2.1 唤醒控制器 (WUC)
        2. 6.4.2.2 实时时钟
        3. 6.4.2.3 MCU 事件结构
    5. 6.5 MCU 事件结构
      1. 6.5.1 通用输入事件列表
      2. 6.5.2 事件订阅者
        1. 6.5.2.1 系统 CPU
        2. 6.5.2.2 NMI
        3. 6.5.2.3 冻结
    6. 6.6 AON 事件
    7. 6.7 中断和事件寄存器
      1. 6.7.1 AON_EVENT 寄存器
      2. 6.7.2 EVENT 寄存器
  8. JTAG 接口
    1. 7.1  顶层调试系统
    2. 7.2  cJTAG
      1. 7.2.1 cJTAG 命令
        1. 7.2.1.1 必需命令
      2. 7.2.2 编程序列
        1. 7.2.2.1 打开命令窗口
        2. 7.2.2.2 更改为 4 引脚模式
        3. 7.2.2.3 关闭命令窗口
    3. 7.3  ICEPick
      1. 7.3.1 次级 TAP
        1. 7.3.1.1 从器件 DAP (CPU DAP)
        2. 7.3.1.2 从属 TAP 和 DAP 的排序
      2. 7.3.2 ICEPick 寄存器
        1. 7.3.2.1 IR 指令
        2. 7.3.2.2 数据移位寄存器
        3. 7.3.2.3 指令寄存器
        4. 7.3.2.4 旁路寄存器
        5. 7.3.2.5 器件标识寄存器
        6. 7.3.2.6 用户代码寄存器
        7. 7.3.2.7 ICEPick 标识寄存器
        8. 7.3.2.8 连接寄存器
      3. 7.3.3 路由器扫描链
      4. 7.3.4 TAP 路由寄存器
        1. 7.3.4.1 ICEPick 控制块
          1. 7.3.4.1.1 All0s 寄存器
          2. 7.3.4.1.2 ICEPick 控制寄存器
          3. 7.3.4.1.3 链接模式寄存器
        2. 7.3.4.2 测试 TAP 链接块
          1. 7.3.4.2.1 次级测试 TAP 寄存器
        3. 7.3.4.3 调试 TAP 链接块
          1. 7.3.4.3.1 次级调试 TAP 寄存器
    4. 7.4  ICEMelter
    5. 7.5  串行线查看器 (SWV)
    6. 7.6  引导中暂停 (HIB)
    7. 7.7  调试与关断
    8. 7.8  通过 WUC TAP 支持的调试功能
    9. 7.9  分析器寄存器
    10. 7.10 边界扫描
  9. 电源、复位和时钟管理 (PRCM)
    1. 8.1 简介
    2. 8.2 系统 CPU 模式
    3. 8.3 电源系统
      1. 8.3.1 内部 DC/DC 转换器和全局 LDO
    4. 8.4 数字电源分区
      1. 8.4.1 MCU_VD
        1. 8.4.1.1 MCU_VD 电源域
      2. 8.4.2 AON_VD
        1. 8.4.2.1 AON_VD 电源域
    5. 8.5 时钟管理
      1. 8.5.1 系统时钟
        1. 8.5.1.1 控制振荡器
      2. 8.5.2 MCU_VD 中的时钟
        1. 8.5.2.1 时钟门控
        2. 8.5.2.2 定标器到 GPT
        3. 8.5.2.3 WDT 分频器
      3. 8.5.3 AON_VD 中的时钟
    6. 8.6 电源模式
      1. 8.6.1 启动状态
      2. 8.6.2 活动模式
      3. 8.6.3 空闲模式
      4. 8.6.4 待机模式
      5. 8.6.5 关断模式
    7. 8.7 复位
      1. 8.7.1 系统复位
        1. 8.7.1.1 时钟丢失检测
        2. 8.7.1.2 软件启动的系统复位
        3. 8.7.1.3 热复位转换为系统复位
      2. 8.7.2 MCU_VD 电源域及模块的复位
      3. 8.7.3 AON_VD 复位
    8. 8.8 PRCM 寄存器
      1. 8.8.1 DDI_0_OSC 寄存器
      2. 8.8.2 PRCM 寄存器
      3. 8.8.3 AON_PMCTL 寄存器
  10. 多功能指令存储器系统 (VIMS)
    1. 9.1 简介
    2. 9.2 VIMS 配置
      1. 9.2.1 VIMS 模式
        1. 9.2.1.1 GPRAM 模式
        2. 9.2.1.2 关闭模式
        3. 9.2.1.3 缓存模式
      2. 9.2.2 VIMS 闪存线路缓冲器
      3. 9.2.3 VIMS 仲裁
      4. 9.2.4 VIMS 高速缓存 TAG 预取
    3. 9.3 VIMS 软件注意事项
      1. 9.3.1 闪存程序或者更新
      2. 9.3.2 VIMS 保持
        1. 9.3.2.1 模式 1
        2. 9.3.2.2 模式 2
        3. 9.3.2.3 模式 3
    4. 9.4 ROM
    5. 9.5 闪存
      1. 9.5.1 闪存保护
      2. 9.5.2 存储器编程
      3. 9.5.3 闪存编程
      4. 9.5.4 电源管理要求
    6. 9.6 ROM 功能
    7. 9.7 VIMS 寄存器
      1. 9.7.1 FLASH 寄存器
      2. 9.7.2 VIMS 寄存器
  11. 10SRAM
    1. 10.1 简介
    2. 10.2 主要特性
    3. 10.3 数据保留
    4. 10.4 奇偶校验和 SRAM 错误支持
    5. 10.5 SRAM 自动初始化
    6. 10.6 奇偶校验调试行为
    7. 10.7 SRAM 寄存器
      1. 10.7.1 SRAM_MMR 寄存器
      2. 10.7.2 SRAM 寄存器
  12. 11引导加载程序
    1. 11.1 引导加载程序功能
      1. 11.1.1 引导加载程序禁用
      2. 11.1.2 引导加载程序后门
    2. 11.2 引导加载程序接口
      1. 11.2.1 数据包处理
        1. 11.2.1.1 数据包确认和非确认字节
      2. 11.2.2 传输层
        1. 11.2.2.1 UART 传输
          1. 11.2.2.1.1 UART 波特率自动检测
        2. 11.2.2.2 SSI 传输
      3. 11.2.3 串行总线命令
        1. 11.2.3.1  COMMAND_PING
        2. 11.2.3.2  COMMAND_DOWNLOAD
        3. 11.2.3.3  COMMAND_SEND_DATA
        4. 11.2.3.4  COMMAND_SECTOR_ERASE
        5. 11.2.3.5  COMMAND_GET_STATUS
        6. 11.2.3.6  COMMAND_RESET
        7. 11.2.3.7  COMMAND_GET_CHIP_ID
        8. 11.2.3.8  COMMAND_CRC32
        9. 11.2.3.9  COMMAND_BANK_ERASE
        10. 11.2.3.10 COMMAND_MEMORY_READ
        11. 11.2.3.11 COMMAND_MEMORY_WRITE
        12. 11.2.3.12 COMMAND_SET_CCFG
        13. 11.2.3.13 COMMAND_DOWNLOAD_CRC
  13. 12器件配置
    1. 12.1 客户配置 (CCFG)
    2. 12.2 CCFG 寄存器
      1. 12.2.1 CCFG 寄存器
    3. 12.3 出厂配置 (FCFG)
    4. 12.4 FCFG 寄存器
      1. 12.4.1 FCFG1 寄存器
  14. 13加密
    1. 13.1 AES 和哈希加密处理器简介
    2. 13.2 功能说明
      1. 13.2.1 调试功能
      2. 13.2.2 异常处理
    3. 13.3 电源管理和睡眠模式
    4. 13.4 硬件说明
      1. 13.4.1 AHB 从总线
      2. 13.4.2 AHB 主总线
      3. 13.4.3 中断
    5. 13.5 模块说明
      1. 13.5.1 简介
      2. 13.5.2 模块存储器映射
      3. 13.5.3 DMA 控制器
        1. 13.5.3.1 内部操作
        2. 13.5.3.2 支持的 DMA 运行
      4. 13.5.4 主控制和选择模块
        1. 13.5.4.1 算法选择寄存器
          1. 13.5.4.1.1 算法选择
        2. 13.5.4.2 主器件 PROT 启用
          1. 13.5.4.2.1 主 PROT 特权访问启用
        3. 13.5.4.3 软件复位
      5. 13.5.5 AES 引擎
        1. 13.5.5.1 第二密钥寄存器(内部,但可清除)
        2. 13.5.5.2 AES 初始化矢量 (IV) 寄存器
        3. 13.5.5.3 AES I/O 缓冲器控制、模式和长度寄存器
        4. 13.5.5.4 数据输入和输出寄存器
        5. 13.5.5.5 TAG 寄存器
      6. 13.5.6 键区寄存器
        1. 13.5.6.1 密钥写入区域寄存器
        2. 13.5.6.2 密钥写入区域寄存器
        3. 13.5.6.3 密钥大小寄存器
        4. 13.5.6.4 密钥存储区读取区域寄存器
        5. 13.5.6.5 哈希引擎
    6. 13.6 AES 模块性能
      1. 13.6.1 简介
      2. 13.6.2 基于 DMA 的操作的性能
    7. 13.7 编程指南
      1. 13.7.1 复位后的一次性初始化
      2. 13.7.2 DMAC 及主控
        1. 13.7.2.1 经常使用
        2. 13.7.2.2 中断 DMA 传输
        3. 13.7.2.3 中断、硬件和软件同步
      3. 13.7.3 哈希
        1. 13.7.3.1 数据格式和字节顺序
        2. 13.7.3.2 带有来自 DMA 的数据的基本哈希
          1. 13.7.3.2.1 通过从器件读取摘要的新哈希会话
          2. 13.7.3.2.2 新建哈希会话并将摘要输出到外部存储器
          3. 13.7.3.2.3 恢复的哈希会话
        3. 13.7.3.3 HMAC
          1. 13.7.3.3.1 安全 HMAC
        4. 13.7.3.4 数据源自从器件接口的备用基本哈希
          1. 13.7.3.4.1 新哈希会话
          2. 13.7.3.4.2 恢复的哈希会话
      4. 13.7.4 加密和解密
        1. 13.7.4.1 数据格式和字节顺序
        2. 13.7.4.2 密钥存储
          1. 13.7.4.2.1 从外部存储器加载密钥
        3. 13.7.4.3 基本 AES 模式
          1. 13.7.4.3.1 AES-ECB
          2. 13.7.4.3.2 AES-CBC
          3. 13.7.4.3.3 AES-CTR
          4. 13.7.4.3.4 使用 DMA 数据的编程顺序
        4. 13.7.4.4 CBC-MAC
          1. 13.7.4.4.1 CBC-MAC 编程顺序
        5. 13.7.4.5 AES-CCM
          1. 13.7.4.5.1 AES-CCM 编程顺序
        6. 13.7.4.6 AES-GCM
          1. 13.7.4.6.1 AES-GCM 编程顺序
      5. 13.7.5 异常处理
        1. 13.7.5.1 软复位
        2. 13.7.5.2 外部端口错误
        3. 13.7.5.3 密钥存储错误
          1. 13.7.5.3.1 PKA 引擎
          2. 13.7.5.3.2 功能说明
            1. 13.7.5.3.2.1 模块架构
          3. 13.7.5.3.3 PKA RAM
            1. 13.7.5.3.3.1 PKCP 操作
            2. 13.7.5.3.3.2 序列发生器操作
              1. 13.7.5.3.3.2.1 模幂运算
              2. 13.7.5.3.3.2.2 模逆运算
              3. 13.7.5.3.3.2.3 性能
              4. 13.7.5.3.3.2.4 ECC 操作
              5. 13.7.5.3.3.2.5 性能
              6. 13.7.5.3.3.2.6 ExpMod 性能
              7. 13.7.5.3.3.2.7 模逆性能
              8. 13.7.5.3.3.2.8 ECC 操作性能
            3. 13.7.5.3.3.3 序列发生器 ROM 行为和接口
            4. 13.7.5.3.3.4 寄存器配置
            5. 13.7.5.3.3.5 运行时序
    8. 13.8 约定与合规性
      1. 13.8.1 本手册中使用的约定
        1. 13.8.1.1 术语
        2. 13.8.1.2 公式和命名规则
      2. 13.8.2 合规性
    9. 13.9 加密寄存器
      1. 13.9.1 CRYPTO 寄存器
  15. 14I/O 控制器 (IOC)
    1. 14.1  简介
    2. 14.2  IOC 概述
    3. 14.3  I/O 映射和配置
      1. 14.3.1 基本 I/O 映射
      2. 14.3.2 将 AUXIO 映射到 DIO 引脚
      3. 14.3.3 通过 I/O 控制外部 LNA/PA(范围扩展器)
      4. 14.3.4 将 32kHz 系统时钟(LF 时钟)映射至 DIO
    4. 14.4  DIO 引脚上的边沿检测
      1. 14.4.1 将 DIO 配置为 GPIO 输入,生成 EDGE DETECT 上的中断
    5. 14.5  未使用的 I/O 引脚
    6. 14.6  GPIO
    7. 14.7  I/O 引脚功能
    8. 14.8  外设 PORTID
    9. 14.9  I/O 引脚
      1. 14.9.1 输入/输出模式
        1. 14.9.1.1 物理引脚
        2. 14.9.1.2 引脚配置
    10. 14.10 IOC 寄存器
      1. 14.10.1 AON_IOC 寄存器
      2. 14.10.2 GPIO 寄存器
      3. 14.10.3 IOC 寄存器
  16. 15微型直接存储器存取 (µDMA)
    1. 15.1 μDMA 简介
    2. 15.2 方框图
    3. 15.3 功能说明
      1. 15.3.1  通道分配
      2. 15.3.2  优先级
      3. 15.3.3  仲裁大小
      4. 15.3.4  请求类型
        1. 15.3.4.1 单个请求
        2. 15.3.4.2 突发请求
      5. 15.3.5  通道配置
      6. 15.3.6  传输模式
        1. 15.3.6.1 停止模式
        2. 15.3.6.2 基本模式
        3. 15.3.6.3 自动模式
        4. 15.3.6.4 乒乓模式
        5. 15.3.6.5 内存散聚模式
        6. 15.3.6.6 外设散聚模式
      7. 15.3.7  传输大小和增量
      8. 15.3.8  外设接口
      9. 15.3.9  软件请求
      10. 15.3.10 中断和错误
    4. 15.4 初始化和配置
      1. 15.4.1 模块初始化
      2. 15.4.2 配置存储器到存储器传输
        1. 15.4.2.1 配置通道属性
        2. 15.4.2.2 配置通道控制结构
        3. 15.4.2.3 启动传输
    5. 15.5 µDMA 寄存器
      1. 15.5.1 UDMA 寄存器
  17. 16计时器
    1. 16.1 通用计时器
    2. 16.2 方框图
    3. 16.3 功能说明
      1. 16.3.1 GPTM 复位条件
      2. 16.3.2 计时器模式
        1. 16.3.2.1 单次触发或周期计时器模式
        2. 16.3.2.2 输入边沿计数模式
        3. 16.3.2.3 输入边沿时间模式
        4. 16.3.2.4 PWM 模式
        5. 16.3.2.5 等待触发模式
      3. 16.3.3 同步 GPT 模块
      4. 16.3.4 访问级联的 16 位和 32 位 GPTM 寄存器值
    4. 16.4 初始化和配置
      1. 16.4.1 单次触发和周期计时器模式
      2. 16.4.2 输入边沿计数模式
      3. 16.4.3 输入边沿计时模式
      4. 16.4.4 PWM 模式
      5. 16.4.5 生成 DMA 触发事件
    5. 16.5 GPTM 寄存器
      1. 16.5.1 GPT 寄存器
  18. 17实时时钟 (RTC)
    1. 17.1 简介
    2. 17.2 功能规格
      1. 17.2.1 功能概述
      2. 17.2.2 自由运行计数器
      3. 17.2.3 通道
        1. 17.2.3.1 捕获和比较
      4. 17.2.4 事件
    3. 17.3 RTC 寄存器信息
      1. 17.3.1 寄存器访问
      2. 17.3.2 进入睡眠和从睡眠中唤醒
      3. 17.3.3 AON_RTC:SYNC 寄存器
    4. 17.4 RTC 寄存器
      1. 17.4.1 AON_RTC 寄存器
  19. 18看门狗计时器 (WDT)
    1. 18.1 简介
    2. 18.2 功能说明
    3. 18.3 初始化和配置
    4. 18.4 WDT 寄存器
      1. 18.4.1 WDT 寄存器
  20. 19真随机数发生器 (TRNG)
    1. 19.1 简介
    2. 19.2 方框图
    3. 19.3 TRNG 软件复位
    4. 19.4 中断请求
    5. 19.5 TRNG 操作说明
      1. 19.5.1 TRNG 关断
      2. 19.5.2 TRNG 警报
      3. 19.5.3 TRNG 熵
    6. 19.6 TRNG 底层编程指南
      1. 19.6.1 初始化
        1. 19.6.1.1 接口模块
        2. 19.6.1.2 TRNG 主序列
        3. 19.6.1.3 TRNG 工作模式
          1. 19.6.1.3.1 轮询模式
          2. 19.6.1.3.2 中断模式
    7. 19.7 TRNG 寄存器
      1. 19.7.1 TRNG 寄存器
  21. 20AUX 域传感器控制器和外设
    1. 20.1 简介
      1. 20.1.1 AUX 方框图
    2. 20.2 电源和时钟管理
      1. 20.2.1 工作模式
        1. 20.2.1.1 双速率 AUX 时钟
      2. 20.2.2 使用场景
        1. 20.2.2.1 MCU
        2. 20.2.2.2 传感器控制器
      3. 20.2.3 SCE 时钟仿真
      4. 20.2.4 AUX RAM 保持
    3. 20.3 传感器控制器
      1. 20.3.1 Sensor Controller Studio
        1. 20.3.1.1 编程模型
        2. 20.3.1.2 任务开发
        3. 20.3.1.3 任务测试、任务调试和运行时日志记录
        4. 20.3.1.4 文档
      2. 20.3.2 传感器控制器引擎 (SCE)
        1. 20.3.2.1  寄存器
          1.        流水线风险
        2. 20.3.2.2  存储器架构
          1.        指令和数据的存储器访问
          2.        模块寄存器的 I/O 访问
        3. 20.3.2.3  程序流程
          1.        零开销循环
        4. 20.3.2.4  指令集
          1. 20.3.2.4.1 指令时序
          2. 20.3.2.4.2 指令前缀
          3. 20.3.2.4.3 指令
        5. 20.3.2.5  SCE 事件接口
        6. 20.3.2.6  数学加速器 (MAC)
        7. 20.3.2.7  可编程微秒延迟
        8. 20.3.2.8  唤醒事件处理
        9. 20.3.2.9  访问 AON 域寄存器
        10. 20.3.2.10 VDDR 充电
    4. 20.4 数字外设模块
      1. 20.4.1 概述
        1. 20.4.1.1 DDI 控制配置
      2. 20.4.2 AIODIO
        1. 20.4.2.1 简介
        2. 20.4.2.2 功能说明
          1. 20.4.2.2.1 映射到 DIO 引脚
          2. 20.4.2.2.2 配置
          3. 20.4.2.2.3 GPIO 模式
          4. 20.4.2.2.4 输入缓冲器
          5. 20.4.2.2.5 数据输出源
      3. 20.4.3 SMPH
        1. 20.4.3.1 简介
        2. 20.4.3.2 功能说明
        3. 20.4.3.3 TI 软件中的信标分配
      4. 20.4.4 SPIM
        1. 20.4.4.1 简介
        2. 20.4.4.2 功能说明
          1. 20.4.4.2.1 TX 和 RX 操作
          2. 20.4.4.2.2 配置
          3. 20.4.4.2.3 时序图
      5. 20.4.5 时间数字转换器 (TDC)
        1. 20.4.5.1 简介
        2. 20.4.5.2 功能说明
          1. 20.4.5.2.1 命令
          2. 20.4.5.2.2 转换时间配置
          3. 20.4.5.2.3 状态和结果
          4. 20.4.5.2.4 时钟源选择
            1. 20.4.5.2.4.1 计数器时钟
            2. 20.4.5.2.4.2 基准时钟
          5. 20.4.5.2.5 启动和停止事件
          6. 20.4.5.2.6 预分频器
        3. 20.4.5.3 支持的测量类型
          1. 20.4.5.3.1 测量脉冲宽度
          2. 20.4.5.3.2 测量频率
          3. 20.4.5.3.3 测量不同事件源之间的边沿时间间隔
            1. 20.4.5.3.3.1 异步计数器启动 — 忽略 0 个停止事件
            2. 20.4.5.3.3.2 同步计数器启动 — 忽略 0 个停止事件
            3. 20.4.5.3.3.3 异步计数器启动 — 忽略停止事件
            4. 20.4.5.3.3.4 同步计数器启动 — 忽略停止事件
          4. 20.4.5.3.4 脉冲计数
      6. 20.4.6 Timer01
        1. 20.4.6.1 简介
        2. 20.4.6.2 功能说明
      7. 20.4.7 Timer2
        1. 20.4.7.1 简介
        2. 20.4.7.2 功能说明
          1. 20.4.7.2.1 时钟源
          2. 20.4.7.2.2 时钟预分频器
          3. 20.4.7.2.3 计数器
          4. 20.4.7.2.4 事件输出
          5. 20.4.7.2.5 通道操作
            1. 20.4.7.2.5.1 周期和脉冲宽度测量
              1. 20.4.7.2.5.1.1 计时器周期和脉冲宽度捕获
            2. 20.4.7.2.5.2 归零时清除,比较时重复翻转
              1. 20.4.7.2.5.2.1 通道 0 生成中心对齐 PWM
            3. 20.4.7.2.5.3 归零时设置,比较时重复翻转
              1. 20.4.7.2.5.3.1 通道 0 生成边沿对齐 PWM
          6. 20.4.7.2.6 异步总线桥
    5. 20.5 模拟外设模块
      1. 20.5.1 概述
        1. 20.5.1.1 ADI 控制配置
        2. 20.5.1.2 方框图
      2. 20.5.2 模数转换器 (ADC)
        1. 20.5.2.1 简介
        2. 20.5.2.2 功能说明
          1. 20.5.2.2.1 输入选择和缩放
          2. 20.5.2.2.2 基准选择
          3. 20.5.2.2.3 ADC 采样模式
          4. 20.5.2.2.4 ADC 时钟源
          5. 20.5.2.2.5 ADC 触发器
          6. 20.5.2.2.6 采样 FIFO
          7. 20.5.2.2.7 µDMA 接口
          8. 20.5.2.2.8 资源所有权和使用情况
      3. 20.5.3 COMPA
        1. 20.5.3.1 简介
        2. 20.5.3.2 功能说明
          1. 20.5.3.2.1 输入选择
          2. 20.5.3.2.2 基准选择
          3. 20.5.3.2.3 LPM 偏置和 COMPA 使能
          4. 20.5.3.2.4 资源所有权和使用情况
      4. 20.5.4 COMPB
        1. 20.5.4.1 简介
        2. 20.5.4.2 功能说明
          1. 20.5.4.2.1 输入选择
          2. 20.5.4.2.2 基准选择
          3. 20.5.4.2.3 资源所有权和使用情况
            1. 20.5.4.2.3.1 传感器控制器唤醒
            2. 20.5.4.2.3.2 系统 CPU 唤醒
      5. 20.5.5 参考 DAC
        1. 20.5.5.1 简介
        2. 20.5.5.2 功能说明
          1. 20.5.5.2.1 基准选择
          2. 20.5.5.2.2 输出电压控制和范围
          3. 20.5.5.2.3 采样时钟
            1. 20.5.5.2.3.1 自动相位控制
            2. 20.5.5.2.3.2 手动相位控制
            3. 20.5.5.2.3.3 工作模式依赖
          4. 20.5.5.2.4 输出选择
            1. 20.5.5.2.4.1 缓存器
            2. 20.5.5.2.4.2 外部负载
            3. 20.5.5.2.4.3 COMPA_REF
            4. 20.5.5.2.4.4 COMPB_REF
          5. 20.5.5.2.5 LPM 偏置
          6. 20.5.5.2.6 资源所有权和使用情况
      6. 20.5.6 ISRC
        1. 20.5.6.1 简介
        2. 20.5.6.2 功能说明
          1. 20.5.6.2.1 可编程电流
          2. 20.5.6.2.2 电压基准
          3. 20.5.6.2.3 ISRC 使能
          4. 20.5.6.2.4 不受温度影响
          5. 20.5.6.2.5 资源所有权和使用情况
    6. 20.6 事件路由和使用
      1. 20.6.1 AUX 事件总线
        1. 20.6.1.1 事件信号
        2. 20.6.1.2 事件订阅者
          1. 20.6.1.2.1 事件检测
            1. 20.6.1.2.1.1 异步事件检测
            2. 20.6.1.2.1.2 同步事件检测
      2. 20.6.2 在外部引脚上观察事件
      3. 20.6.3 来自 MCU 域的事件
      4. 20.6.4 发送到 MCU 域的事件
      5. 20.6.5 来自 AON 域的事件
      6. 20.6.6 发送到 AON 域的事件
      7. 20.6.7 µDMA 接口
    7. 20.7 传感器控制器别名寄存器空间
    8. 20.8 AUX 域传感器控制器和外设寄存器
      1. 20.8.1  ADI_4_AUX 寄存器
      2. 20.8.2  AUX_AIODIO 寄存器
      3. 20.8.3  AUX_EVCTL 寄存器
      4. 20.8.4  AUX_SMPH 寄存器
      5. 20.8.5  AUX_TDC 寄存器
      6. 20.8.6  AUX_TIMER01 寄存器
      7. 20.8.7  AUX_TIMER2 寄存器
      8. 20.8.8  AUX_ANAIF 寄存器
      9. 20.8.9  AUX_SYSIF 寄存器
      10. 20.8.10 AUX_SPIM 寄存器
      11. 20.8.11 AUX_MAC 寄存器
      12. 20.8.12 AUX_SCE 寄存器
  22. 21电池监测器和温度传感器 (BATMON)
    1. 21.1 简介
    2. 21.2 功能说明
    3. 21.3 BATMON 寄存器
      1. 21.3.1 AON_BATMON 寄存器
  23. 22通用异步收发器 (UART)
    1. 22.1 简介
    2. 22.2 方框图
    3. 22.3 信号描述
    4. 22.4 功能说明
      1. 22.4.1 发送和接收逻辑
      2. 22.4.2 波特率生成
      3. 22.4.3 数据传输
      4. 22.4.4 调制解调器握手支持
        1. 22.4.4.1 信号
        2. 22.4.4.2 流控
          1. 22.4.4.2.1 硬件流控制(RTS 和 CTS)
          2. 22.4.4.2.2 软件流控制(调制解调器状态中断)
      5. 22.4.5 FIFO 操作
      6. 22.4.6 中断
      7. 22.4.7 环回操作
    5. 22.5 用于连接 DMA 的接口
    6. 22.6 初始化和配置
    7. 22.7 UART 寄存器
      1. 22.7.1 UART 寄存器
  24. 23同步串行接口 (SSI)
    1. 23.1 简介
    2. 23.2 方框图
    3. 23.3 信号描述
    4. 23.4 功能说明
      1. 23.4.1 比特率生成
      2. 23.4.2 FIFO 操作
        1. 23.4.2.1 发送FIFO
        2. 23.4.2.2 接收FIFO
      3. 23.4.3 中断
      4. 23.4.4 帧格式
        1. 23.4.4.1 德州仪器 (TI) 同步串行帧格式
        2. 23.4.4.2 Motorola SPI 帧格式
          1. 23.4.4.2.1 SPO 时钟极性位
          2. 23.4.4.2.2 SPH 相位控制位
        3. 23.4.4.3 SPO = 0 和 SPH = 0 时的 Motorola SPI 帧格式
        4. 23.4.4.4 SPO = 0 和 SPH = 1 时的 Motorola SPI 帧格式
        5. 23.4.4.5 SPO = 1 和 SPH = 0 时的 Motorola SPI 帧格式
        6. 23.4.4.6 SPO = 1 和 SPH = 1 时的 Motorola SPI 帧格式
        7. 23.4.4.7 MICROWIRE 帧格式
    5. 23.5 DMA 操作
    6. 23.6 初始化和配置
    7. 23.7 SSI 寄存器
      1. 23.7.1 SSI 寄存器
  25. 24内部集成电路 (I2C)
    1. 24.1 简介
    2. 24.2 方框图
    3. 24.3 功能说明
      1. 24.3.1 I2C 总线功能概述
        1. 24.3.1.1 启动和停止条件
        2. 24.3.1.2 带有 7 位地址的数据格式
        3. 24.3.1.3 数据有效性
        4. 24.3.1.4 响应
        5. 24.3.1.5 仲裁
      2. 24.3.2 可用速度模式
        1. 24.3.2.1 标准和快速模式
      3. 24.3.3 中断
        1. 24.3.3.1 I2C 主器件中断
        2. 24.3.3.2 I2C 从器件中断
      4. 24.3.4 环回操作
      5. 24.3.5 命令序列流程图
        1. 24.3.5.1 I2C 主器件命令序列
        2. 24.3.5.2 I2C 从器件命令序列
    4. 24.4 初始化和配置
    5. 24.5 I2C 寄存器
      1. 24.5.1 I2C 寄存器
  26. 25IC 间音频 (I2S)
    1. 25.1 简介
    2. 25.2 方框图
    3. 25.3 信号描述
    4. 25.4 功能说明
      1. 25.4.1 依赖项
        1. 25.4.1.1 系统 CPU 深度睡眠模式
      2. 25.4.2 引脚配置
      3. 25.4.3 串行格式配置
      4. 25.4.4 I2S
        1. 25.4.4.1 寄存器配置
      5. 25.4.5 左对齐 (LJF)
        1. 25.4.5.1 寄存器配置
      6. 25.4.6 右对齐 (RJF)
        1. 25.4.6.1 寄存器配置
      7. 25.4.7 DSP
        1. 25.4.7.1 寄存器配置
      8. 25.4.8 时钟配置
        1. 25.4.8.1 内部音频时钟源
        2. 25.4.8.2 外部音频时钟源
    5. 25.5 存储器接口
      1. 25.5.1 采样字长
      2. 25.5.2 通道映射
      3. 25.5.3 存储器中的采样存储
      4. 25.5.4 DMA 运行
        1. 25.5.4.1 启动
        2. 25.5.4.2 运行
        3. 25.5.4.3 关断
    6. 25.6 采样时间戳发生器
      1. 25.6.1 样片戳计数器
      2. 25.6.2 启动触发
      3. 25.6.3 采样时间戳捕获
      4. 25.6.4 实现恒定音频延迟
    7. 25.7 错误检测
    8. 25.8 用途
      1. 25.8.1 启动序列
      2. 25.8.2 关断序列
    9. 25.9 I2S 寄存器
      1. 25.9.1 I2S 寄存器
  27. 26无线电
    1. 26.1  RF 内核
      1. 26.1.1 概要说明和概述
    2. 26.2  无线电门铃
      1. 26.2.1 特殊引导过程
      2. 26.2.2 命令及状态寄存器和事件
      3. 26.2.3 RF 内核中断
        1. 26.2.3.1 RF 命令和数据包引擎中断
        2. 26.2.3.2 射频内核硬件中断
        3. 26.2.3.3 RF 内核命令确认中断
      4. 26.2.4 无线电计时器
        1. 26.2.4.1 比较和捕获事件
        2. 26.2.4.2 无线电计时器输出
        3. 26.2.4.3 与实时时钟同步
    3. 26.3  RF 内核 HAL
      1. 26.3.1 硬件支持
      2. 26.3.2 固件支持
        1. 26.3.2.1 命令
        2. 26.3.2.2 状态命令
        3. 26.3.2.3 中断
        4. 26.3.2.4 传递数据
        5. 26.3.2.5 命令调度
          1. 26.3.2.5.1 触发条件
          2. 26.3.2.5.2 条件执行
          3. 26.3.2.5.3 命令启动前的处理
        6. 26.3.2.6 命令数据结构
          1. 26.3.2.6.1 无线电操作命令结构
        7. 26.3.2.7 数据输入结构
          1. 26.3.2.7.1 数据条目队列
          2. 26.3.2.7.2 数据条目
          3. 26.3.2.7.3 指针条目
          4. 26.3.2.7.4 部分读取 RX 条目
        8. 26.3.2.8 外部信令
      3. 26.3.3 命令定义
        1. 26.3.3.1 与协议无关的无线电操作命令
          1. 26.3.3.1.1  CMD_NOP:无操作命令
          2. 26.3.3.1.2  CMD_RADIO_SETUP:设置无线电设置命令
          3. 26.3.3.1.3  CMD_FS_POWERUP:上电频率合成器
          4. 26.3.3.1.4  CMD_FS_POWERDOWN:关闭频率合成器电源
          5. 26.3.3.1.5  CMD_FS:频率合成器控制命令
          6. 26.3.3.1.6  CMD_FS_OFF:关闭频率合成器
          7. 26.3.3.1.7  CMD_RX_TEST:接收器测试命令
          8. 26.3.3.1.8  CMD_TX_TEST:发送器测试命令
          9. 26.3.3.1.9  CMD_SYNC_STOP_RAT:同步和停止无线电计时器命令
          10. 26.3.3.1.10 CMD_SYNC_START_RAT:同步启动无线电计时器命令
          11. 26.3.3.1.11 CMD_COUNT:计数器命令
          12. 26.3.3.1.12 CMD_SCH_IMM:以无线电操作形式运行即时命令
          13. 26.3.3.1.13 CMD_COUNT_BRANCH:带有命令链分支的计数器命令
          14. 26.3.3.1.14 CMD_PATTERN_CHECK:将存储器中的值与模式进行比较
        2. 26.3.3.2 与协议无关的直接和即时命令
          1. 26.3.3.2.1  CMD_ABORT:ABORT 命令
          2. 26.3.3.2.2  CMD_STOP:停止命令
          3. 26.3.3.2.3  CMD_GET_RSSI:读取 RSSI 命令
          4. 26.3.3.2.4  CMD_UPDATE_RADIO_SETUP:更新无线电设置命令
          5. 26.3.3.2.5  CMD_TRIGGER:生成命令触发器
          6. 26.3.3.2.6  CMD_GET_FW_INFO:请求有关正在运行的固件的信息
          7. 26.3.3.2.7  CMD_START_RAT:异步启动无线电计时器命令
          8. 26.3.3.2.8  CMD_PING:以中断进行响应
          9. 26.3.3.2.9  CMD_READ_RFREG:读取射频内核寄存器
          10. 26.3.3.2.10 CMD_SET_RAT_CMP:将 RAT 通道设置为比较模式
          11. 26.3.3.2.11 CMD_SET_RAT_CPT:将 RAT 通道设置为捕获模式
          12. 26.3.3.2.12 CMD_DISABLE_RAT_CH:禁用 RAT 通道
          13. 26.3.3.2.13 CMD_SET_RAT_OUTPUT:将 RAT 输出设置为指定模式
          14. 26.3.3.2.14 CMD_ARM_RAT_CH:配置 RAT 通道
          15. 26.3.3.2.15 CMD_DISARM_RAT_CH:解除 RAT 通道配置
          16. 26.3.3.2.16 CMD_SET_TX_POWER:设置发射功率
          17. 26.3.3.2.17 CMD_SET_TX20_POWER:设置 20dBm PA 的传输功率
          18. 26.3.3.2.18 CMD_UPDATE_FS:设置新的合成器频率而不进行重新校准(已弃用)
          19. 26.3.3.2.19 CMD_MODIFY_FS:设置新的合成器频率而不进行重新校准
          20. 26.3.3.2.20 CMD_BUS_REQUEST:请求可用于 RF 内核的系统总线
      4. 26.3.4 数据队列操作的立即命令
        1. 26.3.4.1 CMD_ADD_DATA_ENTRY:将数据条目添加到队列
        2. 26.3.4.2 CMD_REMOVE_DATA_ENTRY:从队列中删除第一个数据条目
        3. 26.3.4.3 CMD_FLUSH_QUEUE:刷新队列
        4. 26.3.4.4 CMD_CLEAR_RX:清除所有 RX 队列条目
        5. 26.3.4.5 CMD_REMOVE_PENDING_ENTRIES:从队列中删除待处理条目
    4. 26.4  数据队列使用情况
      1. 26.4.1 数据队列上的操作仅可用于内部无线电 CPU 操作
        1. 26.4.1.1 PROC_ALLOCATE_TX:分配 TX 条目以进行读取
        2. 26.4.1.2 PROC_FREE_DATA_ENTRY:自由分配的数据条目
        3. 26.4.1.3 PROC_FINISH_DATA_ENTRY:完成队列中第一个数据条目的使用
        4. 26.4.1.4 PROC_ALLOCATE_RX:分配 RX 缓冲区来存储数据
        5. 26.4.1.5 PROC_FINISH_RX:将收到的数据提交到 RX 数据条目
      2. 26.4.2 无线电 CPU 使用模型
        1. 26.4.2.1 接收队列
        2. 26.4.2.2 发送队列
    5. 26.5  IEEE 802.15.4
      1. 26.5.1 IEEE 802.15.4 命令
        1. 26.5.1.1 IEEE 802.15.4 无线电操作命令结构
        2. 26.5.1.2 IEEE 802.15.4 即时命令结构
        3. 26.5.1.3 输出结构
        4. 26.5.1.4 其他结构和位字段
      2. 26.5.2 中断
      3. 26.5.3 数据处理
        1. 26.5.3.1 接收缓冲器
        2. 26.5.3.2 发送缓冲区
      4. 26.5.4 无线电操作命令
        1. 26.5.4.1 RX 操作
          1. 26.5.4.1.1 帧过滤和源匹配
            1. 26.5.4.1.1.1 帧过滤
            2. 26.5.4.1.1.2 源匹配
          2. 26.5.4.1.2 帧接收
          3. 26.5.4.1.3 ACK 发送
          4. 26.5.4.1.4 接收操作结束
          5. 26.5.4.1.5 CCA 监测
        2. 26.5.4.2 能量检测扫描操作
        3. 26.5.4.3 CSMA-CA 操作
        4. 26.5.4.4 发送操作
        5. 26.5.4.5 接收确认操作
        6. 26.5.4.6 中止后台级操作命令
      5. 26.5.5 即时命令
        1. 26.5.5.1 修改 CCA 参数命令
        2. 26.5.5.2 修改帧过滤参数命令
        3. 26.5.5.3 启用或禁用源匹配条目命令
        4. 26.5.5.4 中止前台级操作命令
        5. 26.5.5.5 停止前台级操作命令
        6. 26.5.5.6 请求 CCA 及 RSSI 信息命令
    6. 26.6  低功耗 Bluetooth®
      1. 26.6.1 低功耗 Bluetooth® 命令
        1. 26.6.1.1 命令数据定义
          1. 26.6.1.1.1 低功耗 Bluetooth® 命令结构
        2. 26.6.1.2 参数结构
        3. 26.6.1.3 输出结构
        4. 26.6.1.4 其他结构及位字段
      2. 26.6.2 中断
    7. 26.7  数据处理
      1. 26.7.1 接收缓冲器
      2. 26.7.2 发送缓冲器
    8. 26.8  无线电操作命令说明
      1. 26.8.1  Bluetooth®5 无线电设置命令
      2. 26.8.2  用于低功耗 Bluetooth® 数据包传输的无线电操作命令
      3. 26.8.3  编码 PHY 的编码选择
      4. 26.8.4  参数覆盖
      5. 26.8.5  链路层连接
      6. 26.8.6  从器件命令
      7. 26.8.7  主器件命令
      8. 26.8.8  传统广播器
        1. 26.8.8.1 可连接的非定向广播器命令
        2. 26.8.8.2 可连接的定向广播器命令
        3. 26.8.8.3 不可连接的广播器命令
        4. 26.8.8.4 可扫描非定向广播器命令
      9. 26.8.9  Bluetooth® 5 广播器命令
        1. 26.8.9.1 通用扩展广播数据包
        2. 26.8.9.2 扩展的广播器命令
        3. 26.8.9.3 辅助通道广播器命令
      10. 26.8.10 扫描器命令
        1. 26.8.10.1 扫描器在主通道上接收传统广播数据包
        2. 26.8.10.2 扫描器在主通道上接收扩展广播数据包
        3. 26.8.10.3 扫描器在次级通道上接收扩展广播包
        4. 26.8.10.4 ADI 滤波
        5. 26.8.10.5 扫描器命令结束
      11. 26.8.11 启动器命令
        1. 26.8.11.1 在主通道上接收传统广播数据包的启动器
        2. 26.8.11.2 启动器在主通道上接收扩展广播数据包
        3. 26.8.11.3 启动器在次级通道上接收扩展广播数据包
        4. 26.8.11.4 自动窗口偏移插入
        5. 26.8.11.5 启动器命令结束
      12. 26.8.12 通用接收器命令
      13. 26.8.13 PHY 测试发送命令
      14. 26.8.14 白名单处理
      15. 26.8.15 退避过程
      16. 26.8.16 AUX 指针处理
      17. 26.8.17 器件地址的动态更改
    9. 26.9  即时命令
      1. 26.9.1 更新广播有效载荷命令
    10. 26.10 专有无线电
      1. 26.10.1 数据包格式
      2. 26.10.2 命令
        1. 26.10.2.1 命令数据定义
          1. 26.10.2.1.1 命令结构
        2. 26.10.2.2 输出结构
        3. 26.10.2.3 其他结构和位字段
      3. 26.10.3 中断
      4. 26.10.4 数据处理
        1. 26.10.4.1 接收缓冲区
        2. 26.10.4.2 发送缓冲器
      5. 26.10.5 无线电操作命令说明
        1. 26.10.5.1 操作结束
        2. 26.10.5.2 专有模式设置命令
          1. 26.10.5.2.1 IEEE 802.15.4g 数据包格式
        3. 26.10.5.3 发送器命令
          1. 26.10.5.3.1 标准传输命令 CMD_PROP_TX
          2. 26.10.5.3.2 高级发送命令,CMD_PROP_TX_ADV
        4. 26.10.5.4 接收器命令
          1. 26.10.5.4.1 标准接收命令 CMD_PROP_RX
          2. 26.10.5.4.2 高级接收命令 CMD_PROP_RX_ADV
        5. 26.10.5.5 载波侦听操作
          1. 26.10.5.5.1 常见载波检测说明
          2. 26.10.5.5.2 载波检测命令,CMD_PROP_CS
          3. 26.10.5.5.3 嗅探模式接收命令 CMD_PROP_RX_SNIFF 和 CMD_PROP_RX_ADV_SNIFF
      6. 26.10.6 即时命令
        1. 26.10.6.1 设置数据包长度命令 CMD_PROP_SET_LEN
        2. 26.10.6.2 重新启动数据包 RX 命令 CMD_PROP_RESTART_RX
    11. 26.11 无线电寄存器
      1. 26.11.1 RFC_RAT 寄存器
      2. 26.11.2 RFC_DBELL 寄存器
      3. 26.11.3 RFC_PWR 寄存器
  28. 27修订历史记录

CPU_SCS 寄存器

表 3-106 列出了 CPU_SCS 寄存器的存储器映射寄存器。表 3-106中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。

表 3-106 CPU_SCS 寄存器
偏移首字母缩写词寄存器名称部分
4hICTR中断控制类型ICTR 寄存器(偏移 = 4h)[复位 = 00000001h]
8hACTLR辅助控制ACTLR 寄存器(偏移 = 8h)[复位 = 00000000h]
10hSTCSRSysTick 控制和状态STCSR 寄存器(偏移 = 10h)[复位 = 00000004h]
14hSTRVRSysTick 重载值STRVR 寄存器(偏移 = 14h)[复位 = 00000000h]
18hSTCVRSysTick 当前值STCVR 寄存器(偏移 = 18h)[复位 = 00000000h]
1ChSTCRSysTick 校准值STCR 寄存器(偏移 = 1Ch)[复位 = C0075300h]
100hNVIC_ISER0Irq 0 至 31 设置使能NVIC_ISER0 寄存器(偏移 = 100h)[复位 = 00000000h]
104hNVIC_ISER1Irq 32 至 63 设置使能NVIC_ISER1 寄存器(偏移 = 104h)[复位 = 00000000h]
180hNVIC_ICER0Irq 0 至 31 清除使能NVIC_ICER0 寄存器(偏移 = 180h)[复位 = 00000000h]
184hNVIC_ICER1Irq 32 至 63 清除使能NVIC_ICER1 寄存器(偏移 = 184h)[复位 = 00000000h]
200hNVIC_ISPR0Irq 0 至 31 设置挂起NVIC_ISPR0 寄存器(偏移 = 200h)[复位 = 00000000h]
204hNVIC_ISPR1Irq 32 至 63 设置挂起NVIC_ISPR1 寄存器(偏移 = 204h)[复位 = 00000000h]
280hNVIC_ICPR0Irq 0 至 31 清除挂起NVIC_ICPR0 寄存器(偏移 = 280h)[复位 = 00000000h]
284hNVIC_ICPR1Irq 32 至 63 清除挂起NVIC_ICPR1 寄存器(偏移 = 284h)[复位 = 00000000h]
300hNVIC_IABR0Irq 0 至 31 活动位NVIC_IABR0 寄存器(偏移 = 300h)[复位 = 00000000h]
304hNVIC_IABR1Irq 32 至 63 活动位NVIC_IABR1 寄存器(偏移 = 304h)[复位 = 00000000h]
400hNVIC_IPR0Irq 0 至 3 的优先级NVIC_IPR0 寄存器(偏移 = 400h)[复位 = 00000000h]
404hNVIC_IPR1Irq 4 至 7 的优先级NVIC_IPR1 寄存器(偏移 = 404h)[复位 = 00000000h]
408hNVIC_IPR2Irq 8 至 11 的优先级NVIC_IPR2 寄存器(偏移 = 408h)[复位 = 00000000h]
40ChNVIC_IPR3Irq 12 至 15 的优先级NVIC_IPR3 寄存器(偏移 = 40Ch)[复位 = 00000000h]
410hNVIC_IPR4Irq 16 至 19 的优先级NVIC_IPR4 寄存器(偏移 = 410h)[复位 = 00000000h]
414hNVIC_IPR5Irq 20 至 23 的优先级NVIC_IPR5 寄存器(偏移 = 414h)[复位 = 00000000h]
418hNVIC_IPR6Irq 24 至 27 的优先级NVIC_IPR6 寄存器(偏移 = 418h)[复位 = 00000000h]
41ChNVIC_IPR7Irq 28 至 31 的优先级NVIC_IPR7 寄存器(偏移 = 41Ch)[复位 = 00000000h]
420hNVIC_IPR8Irq 32 至 35 的优先级NVIC_IPR8 寄存器(偏移 = 420h)[复位 = 00000000h]
424hNVIC_IPR9Irq 32 至 35 的优先级NVIC_IPR9 寄存器(偏移 = 424h)[复位 = 00000000h]
D00hCPUIDCPUID 基地址CPUID 寄存器(偏移 = D00h)[复位 = 410FC241h]
D04hICSR中断控制状态ICSR 寄存器(偏移 = D04h)[复位 = 00000000h]
D08hVTOR矢量表偏移VTOR 寄存器(偏移 = D08h)[复位 = 00000000h]
D0ChAIRCR应用中断/复位控制AIRCR 寄存器(偏移 = D0Ch)[复位 = FA050000h]
D10hSCR系统控制SCR 寄存器(偏移 = D10h)[复位 = 00000000h]
D14hCCR配置控制CCR 寄存器(偏移 = D14h)[复位 = 00000200h]
D18hSHPR1系统处理程序 4-7 的优先级SHPR1 寄存器(偏移 = D18h)[复位 = 00000000h]
D1ChSHPR2系统处理程序 8-11 的优先级SHPR2 寄存器(偏移 = D1Ch)[复位 = 00000000h]
D20hSHPR3系统处理程序 12-15 的优先级SHPR3 寄存器(偏移 = D20h)[复位 = 00000000h]
D24hSHCSR系统处理程序控制和状态SHCSR 寄存器(偏移 = D24h)[复位 = 00000000h]
D28hCFSR可配置故障状态CFSR 寄存器(偏移 = D28h)[复位 = 00000000h]
D2ChHFSR硬故障状态HFSR 寄存器(偏移 = D2Ch)[复位 = 00000000h]
D30hDFSR调试故障状态DFSR 寄存器(偏移 = D30h)[复位 = 00000000h]
D34hMMFAR存储器管理故障地址MMFAR 寄存器(偏移 = D34h)[复位 = 00000000h]
D38hBFAR总线故障地址BFAR 寄存器(偏移 = D38h)[复位 = 00000000h]
D3ChAFSR辅助故障状态AFSR 寄存器(偏移 = D3Ch)[复位 = 00000000h]
D40hID_PFR0处理器功能 0ID_PFR0 寄存器(偏移 = D40h)[复位 = 00000030h]
D44hID_PFR1处理器功能 1ID_PFR1 寄存器(偏移 = D44h)[复位 = 00000200h]
D48hID_DFR0调试功能 0ID_DFR0 寄存器(偏移 = D48h)[复位 = 00100000h]
D4ChID_AFR0辅助功能 0ID_AFR0 寄存器(偏移 = D4Ch)[复位 = 00000000h]
D50hID_MMFR0存储器模型功能 0ID_MMFR0 寄存器(偏移 = D50h)[复位 = 00100030h]
D54hID_MMFR1存储器模型功能 1ID_MMFR1 寄存器(偏移 = D54h)[复位 = 00000000h]
D58hID_MMFR2存储器模型功能 2ID_MMFR2 寄存器(偏移 = D58h)[复位 = 01000000h]
D5ChID_MMFR3存储器模型功能 3ID_MMFR3 寄存器(偏移 = D5Ch)[复位 = 00000000h]
D60hID_ISAR0ISA 功能 0ID_ISAR0 寄存器(偏移 = D60h)[复位 = 01101110h]
D64hID_ISAR1ISA 功能 1ID_ISAR1 寄存器(偏移 = D64h)[复位 = 02112000h]
D68hID_ISAR2ISA 功能 2ID_ISAR2 寄存器(偏移 = D68h)[复位 = 21232231h]
D6ChID_ISAR3ISA 功能 3ID_ISAR3 寄存器(偏移 = D6Ch)[复位 = 01111131h]
D70hID_ISAR4ISA 功能 4ID_ISAR4 寄存器(偏移 = D70h)[复位 = 01310132h]
D88hCPACR协处理器访问控制CPACR 寄存器(偏移 = D88h)[复位 = 00000000h]
D90hMPU_TYPEMPU 类型MPU_TYPE 寄存器(偏移 = D90h)[复位 = 00000800h]
D94hMPU_CTRLMPU 控制MPU_CTRL 寄存器(偏移 = D94h)[复位 = 00000000h]
D98hMPU_RNRMPU 区域编号MPU_RNR 寄存器(偏移 = D98h)[复位 = 00000000h]
D9ChMPU_RBARMPU 区域基地址MPU_RBAR 寄存器(偏移 = D9Ch)[复位 = 00000000h]
DA0hMPU_RASRMPU 区域属性和大小MPU_RASR 寄存器(偏移 = DA0h)[复位 = 00000000h]
DA4hMPU_RBAR_A1MPU 别名 1 区域基地址MPU_RBAR_A1 寄存器(偏移 = DA4h)[复位 = 00000000h]
DA8hMPU_RASR_A1MPU 别名 1 区域属性和大小MPU_RASR_A1 寄存器(偏移 = DA8h)[复位 = 00000000h]
DAChMPU_RBAR_A2MPU 别名 2 区域基地址MPU_RBAR_A2 寄存器(偏移 = DACh)[复位 = 00000000h]
DB0hMPU_RASR_A2MPU 别名 2 区域属性和大小MPU_RASR_A2 寄存器(偏移 = DB0h)[复位 = 00000000h]
DB4hMPU_RBAR_A3MPU 别名 3 区域基地址MPU_RBAR_A3 寄存器(偏移 = DB4h)[复位 = 00000000h]
DB8hMPU_RASR_A3MPU 别名 3 区域属性和大小MPU_RASR_A3 寄存器(偏移 = DB8h)[复位 = 00000000h]
DF0hDHCSR调试暂停控制和状态DHCSR 寄存器(偏移 = DF0h)[复位 = 00000000h]
DF4hDCRSR调试内核寄存器选择器DCRSR 寄存器(偏移 = DF4h)[复位 = 00000000h]
DF8hDCRDR调试内核寄存器数据DCRDR 寄存器(偏移 = DF8h)[复位 = 00000000h]
DFChDEMCR调试异常和监视器控制DEMCR 寄存器(偏移 = DFCh)[复位 = 00000000h]
F00hSTIR软件触发中断STIR 寄存器(偏移 = F00h)[复位 = 00000000h]
F34hFPCCR浮点上下文控制FPCCR 寄存器(偏移 = F34h)[复位 = C0000000h]
F38hFPCAR浮点上下文地址FPCAR 寄存器(偏移 = F38h)[复位 = 00000000h]
F3ChFPDSCR浮点默认状态控制FPDSCR 寄存器(偏移 = F3Ch)[复位 = 00000000h]
F40hMVFR0媒体和浮点功能 0MVFR0 寄存器(偏移 = F40h)[复位 = 10110021h]
F44hMVFR1媒体和浮点功能 1MVFR1 寄存器(偏移 = F44h)[复位 = 11000011h]

复杂的位访问类型经过编码可适应小型表单元。表 3-107 展示了适用于此部分中访问类型的代码。

表 3-107 CPU_SCS 访问类型代码
访问类型代码说明
读取类型
RR读取
写入类型
WW写入
W1CW
1C
写入
1 以清零
复位或默认值
-n复位后的值或默认值

3.9.4.1 ICTR 寄存器(偏移 = 4h)[复位 = 00000001h]

图 3-72 展示了 ICTR,表 3-108 中对此进行了介绍。

返回到汇总表

中断控制类型
读取该寄存器可查看 NVIC 支持的中断线数量。

图 3-72 ICTR 寄存器
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVED
R-0h
15141312111098
RESERVED
R-0h
76543210
RESERVEDINTLINESNUM
R-0hR-1h
表 3-108 ICTR 寄存器字段说明
字段类型复位说明
31-3RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
2-0INTLINESNUMR1h以 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.9.4.2 ACTLR 寄存器(偏移 = 8h)[复位 = 00000000h]

图 3-73 展示了 ACTLR,表 3-109 中对此进行了介绍。

返回到汇总表

辅助控制
该寄存器用于禁用处理器内部的某些功能

图 3-73 ACTLR 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVEDDISOOFPDISFPCA
R/W-0hR/W-0hR/W-0h
76543210
RESERVEDDISFOLDDISDEFWBUFDISMCYCINT
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-109 ACTLR 寄存器字段说明
字段类型复位说明
31-10RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
9DISOOFPR/W0h禁用浮点指令相对于整数指令错序完成。
8DISFPCAR/W0h禁用 CONTROL.FPCA 的自动更新
7-3RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
2DISFOLDR/W0h禁用 IT 指令的折叠。
1DISDEFWBUFR/W0h在默认存储器映射访问期间禁用写缓冲区使用。这会使所有总线故障都成为精确总线故障,但会降低处理器的性能,因为存储器的存储操作必须在执行下一条指令之前完成。
0DISMCYCINTR/W0h禁用多周期指令的中断。这会增加处理器的中断延迟,因为 LDM/STM 会在中断压栈发生之前完成。

3.9.4.3 STCSR 寄存器(偏移 = 10h)[复位 = 00000004h]

图 3-74 展示了 STCSR,表 3-110 中对此进行了介绍。

返回到汇总表

SysTick 控制和状态
该寄存器可启用 SysTick 功能并返回与 SysTick 相关的状态标志。

图 3-74 STCSR 寄存器
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVEDCOUNTFLAG
R-0hR-0h
15141312111098
RESERVED
R-0h
76543210
RESERVEDCLKSOURCETICKINTENABLE
R-0hR-1hR/W-0hR/W-0h
表 3-110 STCSR 寄存器字段说明
字段类型复位说明
31-17RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
16COUNTFLAGR0h如果自上次读取以来计时器已计时到 0,则返回 1。在应用程序读取 SysTick 控制和状态寄存器的任何部分时清除。如果调试器使用 DAP 读取该位,则仅在 **AHB-AP** 控制寄存器中的 MasterType 位设置为 0 时,会在读取时清除该位。否则,调试器读取不会更改 COUNTFLAG。
15-3RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
2CLKSOURCER1h时钟源:
0:外部基准时钟。
1:内核时钟
该器件不支持外部时钟。对该字段的写入将被忽略。
1TICKINTR/W0h0:倒数到零不会使 SysTick 处理程序挂起。软件可以使用 COUNTFLAG 来确定 SysTick 处理程序是否已倒数到零。
1:倒数到零会使 SysTick 处理程序挂起。
0ENABLER/W0h使能 SysTick 计数器
0:计数器禁用
1:计数器以周期性触发方式运行。也就是说,计数器使用重载值寄存器 STRVR.RELOAD 进行加载,然后开始倒数。达到 0 时,会将 COUNTFLAG 设置为 1,并根据 TICKINT 选择是否挂起 SysTick 处理程序。然后再次加载 STRVR.RELOAD,并开始倒数。

3.9.4.4 STRVR 寄存器(偏移 = 14h)[复位 = 00000000h]

图 3-75 展示了 STRVR,表 3-111 中对此进行了介绍。

返回到汇总表

SysTick 重载值
该寄存器用于指定在计数器达到 0 时加载到当前值寄存器 STCVR.CURRENT 中的起始值。可以是 1 到 0x00FFFFFF 之间的任何值。起始值可以为 0,但无效,因为从 1 倒数到 0 会激活 SysTick 中断和 STCSR.COUNTFLAG。

图 3-75 STRVR 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED重新加载
R/W-0hR/W-X
表 3-111 STRVR 寄存器字段说明
字段类型复位说明
31-24RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
23-0重新加载R/WX计数器达到 0 时加载到 SysTick 当前值寄存器 STCVR.CURRENT 中的值。

3.9.4.5 STCVR 寄存器(偏移 = 18h)[复位 = 00000000h]

图 3-76 展示了 STCVR,表 3-112 中对此进行了介绍。

返回到汇总表

SysTick 当前值
读取该寄存器会返回 SysTick 计数器的当前值。写入该寄存器会复位 SysTick 计数器(以及 STCSR.COUNTFLAG)。

图 3-76 STCVR 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED电流
R/W-0hR/W-X
表 3-112 STCVR 寄存器字段说明
字段类型复位说明
31-24RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
23-0电流R/WX访问寄存器时的当前值。不提供读-改-写保护,因此请谨慎修改。写入任何值都会将该寄存器清零。清除该寄存器的同时,也会清除 STCSR.COUNTFLAG。

3.9.4.6 STCR 寄存器(偏移 = 1Ch)[复位 = C0075300h]

图 3-77 展示了 STCR,表 3-113 中对此进行了介绍。

返回到汇总表

SysTick 校准值
用于使软件能够使用除法和乘法扩展到任何所需的速度。

图 3-77 STCR 寄存器
3130292827262524
NOREFSKEWRESERVED
R-1hR-1hR-0h
2322212019181716
TENMS
R-00075300h
15141312111098
TENMS
R-00075300h
76543210
TENMS
R-00075300h
表 3-113 STCR 寄存器字段说明
字段类型复位说明
31NOREFR1h读为 1。表示未提供独立的基准时钟。
30SKEWR1h读为 1。由于时钟频率的原因,校准值并非恰好为 10ms。这可能会影响其作为软件实时时钟的适用性。
29-24RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
23-0TENMSR00075300h用于 10ms (100Hz) 时序的可选重载值,受系统时钟偏斜错误的影响。仅当内核时钟为 48MHz 时,读取的值才有效。

3.9.4.7 NVIC_ISER0 寄存器(偏移 = 100h)[复位 = 00000000h]

图 3-78 展示了 NVIC_ISER0,表 3-114 对其进行了介绍。

返回到汇总表

Irq 0 至 31 设置使能
该寄存器用于启用中断并确定当前哪些中断处于启用状态。

图 3-78 NVIC_ISER0 寄存器
3130292827262524
SETENA31SETENA30SETENA29SETENA28SETENA27SETENA26SETENA25SETENA24
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
2322212019181716
SETENA23SETENA22SETENA21SETENA20SETENA19SETENA18SETENA17SETENA16
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
SETENA15SETENA14SETENA13SETENA12SETENA11SETENA10SETENA9SETENA8
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
76543210
SETENA7SETENA6SETENA5SETENA4SETENA3SETENA2SETENA1SETENA0
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-114 NVIC_ISER0 寄存器字段说明
字段类型复位说明
31SETENA31R/W0h向该位写入 0 无效,向该位写入 1 将启用 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前使能值。
30SETENA30R/W0h向该位写入 0 无效,向该位写入 1 将启用 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前使能值。
29SETENA29R/W0h向该位写入 0 无效,向该位写入 1 将启用 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前使能值。
28SETENA28R/W0h向该位写入 0 无效,向该位写入 1 将启用 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前使能值。
27SETENA27R/W0h向该位写入 0 无效,向该位写入 1 将启用 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前使能值。
26SETENA26R/W0h向该位写入 0 无效,向该位写入 1 将启用 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前使能值。
25SETENA25R/W0h向该位写入 0 无效,向该位写入 1 将启用 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前使能值。
24SETENA24R/W0h向该位写入 0 无效,向该位写入 1 将启用 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前使能值。
23SETENA23R/W0h向该位写入 0 无效,向该位写入 1 将启用 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前使能值。
22SETENA22R/W0h向该位写入 0 无效,向该位写入 1 将启用 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前使能值。
21SETENA21R/W0h向该位写入 0 无效,向该位写入 1 将启用 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前使能值。
20SETENA20R/W0h向该位写入 0 无效,向该位写入 1 将启用 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前使能值。
19SETENA19R/W0h向该位写入 0 无效,向该位写入 1 将启用 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前使能值。
18SETENA18R/W0h向该位写入 0 无效,向该位写入 1 将启用 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前使能值。
17SETENA17R/W0h向该位写入 0 无效,向该位写入 1 将启用 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前使能值。
16SETENA16R/W0h向该位写入 0 无效,向该位写入 1 将启用 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前使能值。
15SETENA15R/W0h向该位写入 0 无效,向该位写入 1 将启用 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前使能值。
14SETENA14R/W0h向该位写入 0 无效,向该位写入 1 将启用 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前使能值。
13SETENA13R/W0h向该位写入 0 无效,向该位写入 1 将启用 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前使能值。
12SETENA12R/W0h向该位写入 0 无效,向该位写入 1 将启用 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前使能值。
11SETENA11R/W0h向该位写入 0 无效,向该位写入 1 将启用 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前使能值。
10SETENA10R/W0h向该位写入 0 无效,向该位写入 1 将启用 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前使能值。
9SETENA9R/W0h向该位写入 0 无效,向该位写入 1 将启用 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前使能值。
8SETENA8R/W0h向该位写入 0 无效,向该位写入 1 将启用 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前使能值。
7SETENA7R/W0h向该位写入 0 无效,向该位写入 1 将启用 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前使能值。
6SETENA6R/W0h向该位写入 0 无效,向该位写入 1 将启用 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前使能值。
5SETENA5R/W0h向该位写入 0 无效,向该位写入 1 将启用 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前使能值。
4SETENA4R/W0h向该位写入 0 无效,向该位写入 1 将启用 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前使能值。
3SETENA3R/W0h向该位写入 0 无效,向该位写入 1 将启用 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前使能值。
2SETENA2R/W0h向该位写入 0 无效,向该位写入 1 将启用 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前使能值。
1SETENA1R/W0h向该位写入 0 无效,向该位写入 1 将启用 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前使能值。
0SETENA0R/W0h向该位写入 0 无效,向该位写入 1 将启用 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前使能值。

3.9.4.8 NVIC_ISER1 寄存器(偏移 = 104h)[复位 = 00000000h]

图 3-79 展示了 NVIC_ISER1,表 3-115 对其进行了介绍。

返回到汇总表

Irq 32 至 63 设置使能
该寄存器用于启用中断并确定当前哪些中断处于启用状态。

图 3-79 NVIC_ISER1 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDSETENA37SETENA36SETENA35SETENA34SETENA33SETENA32
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-115 NVIC_ISER1 寄存器字段说明
字段类型复位说明
31-6RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5SETENA37R/W0h向该位写入 0 无效,向该位写入 1 将启用 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前使能值。
4SETENA36R/W0h向该位写入 0 无效,向该位写入 1 将启用 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前使能值。
3SETENA35R/W0h向该位写入 0 无效,向该位写入 1 将启用 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前使能值。
2SETENA34R/W0h向该位写入 0 无效,向该位写入 1 将启用 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前使能值。
1SETENA33R/W0h向该位写入 0 无效,向该位写入 1 将启用 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前使能值。
0SETENA32R/W0h向该位写入 0 无效,向该位写入 1 将启用 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前使能值。

3.9.4.9 NVIC_ICER0 寄存器(偏移 = 180h)[复位 = 00000000h]

图 3-80 展示了 NVIC_ICER0,表 3-116 对其进行了介绍。

返回到汇总表

Irq 0 至 31 清除使能
该寄存器用于禁用中断并确定当前哪些中断处于启用状态。

图 3-80 NVIC_ICER0 寄存器
3130292827262524
CLRENA31CLRENA30CLRENA29CLRENA28CLRENA27CLRENA26CLRENA25CLRENA24
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
2322212019181716
CLRENA23CLRENA22CLRENA21CLRENA20CLRENA19CLRENA18CLRENA17CLRENA16
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
CLRENA15CLRENA14CLRENA13CLRENA12CLRENA11CLRENA10CLRENA9CLRENA8
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
76543210
CLRENA7CLRENA6CLRENA5CLRENA4CLRENA3CLRENA2CLRENA1CLRENA0
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-116 NVIC_ICER0 寄存器字段说明
字段类型复位说明
31CLRENA31R/W0h向该位写入 0 无效,向该位写入 1 将禁用 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前使能值。
30CLRENA30R/W0h向该位写入 0 无效,向该位写入 1 将禁用 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前使能值。
29CLRENA29R/W0h向该位写入 0 无效,向该位写入 1 将禁用 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前使能值。
28CLRENA28R/W0h向该位写入 0 无效,向该位写入 1 将禁用 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前使能值。
27CLRENA27R/W0h向该位写入 0 无效,向该位写入 1 将禁用 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前使能值。
26CLRENA26R/W0h向该位写入 0 无效,向该位写入 1 将禁用 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前使能值。
25CLRENA25R/W0h向该位写入 0 无效,向该位写入 1 将禁用 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前使能值。
24CLRENA24R/W0h向该位写入 0 无效,向该位写入 1 将禁用 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前使能值。
23CLRENA23R/W0h向该位写入 0 无效,向该位写入 1 将禁用 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前使能值。
22CLRENA22R/W0h向该位写入 0 无效,向该位写入 1 将禁用 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前使能值。
21CLRENA21R/W0h向该位写入 0 无效,向该位写入 1 将禁用 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前使能值。
20CLRENA20R/W0h向该位写入 0 无效,向该位写入 1 将禁用 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前使能值。
19CLRENA19R/W0h向该位写入 0 无效,向该位写入 1 将禁用 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前使能值。
18CLRENA18R/W0h向该位写入 0 无效,向该位写入 1 将禁用 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前使能值。
17CLRENA17R/W0h向该位写入 0 无效,向该位写入 1 将禁用 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前使能值。
16CLRENA16R/W0h向该位写入 0 无效,向该位写入 1 将禁用 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前使能值。
15CLRENA15R/W0h向该位写入 0 无效,向该位写入 1 将禁用 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前使能值。
14CLRENA14R/W0h向该位写入 0 无效,向该位写入 1 将禁用 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前使能值。
13CLRENA13R/W0h向该位写入 0 无效,向该位写入 1 将禁用 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前使能值。
12CLRENA12R/W0h向该位写入 0 无效,向该位写入 1 将禁用 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前使能值。
11CLRENA11R/W0h向该位写入 0 无效,向该位写入 1 将禁用 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前使能值。
10CLRENA10R/W0h向该位写入 0 无效,向该位写入 1 将禁用 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前使能值。
9CLRENA9R/W0h向该位写入 0 无效,向该位写入 1 将禁用 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前使能值。
8CLRENA8R/W0h向该位写入 0 无效,向该位写入 1 将禁用 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前使能值。
7CLRENA7R/W0h向该位写入 0 无效,向该位写入 1 将禁用 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前使能值。
6CLRENA6R/W0h向该位写入 0 无效,向该位写入 1 将禁用 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前使能值。
5CLRENA5R/W0h向该位写入 0 无效,向该位写入 1 将禁用 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前使能值。
4CLRENA4R/W0h向该位写入 0 无效,向该位写入 1 将禁用 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前使能值。
3CLRENA3R/W0h向该位写入 0 无效,向该位写入 1 将禁用 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前使能值。
2CLRENA2R/W0h向该位写入 0 无效,向该位写入 1 将禁用 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前使能值。
1CLRENA1R/W0h向该位写入 0 无效,向该位写入 1 将禁用 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前使能值。
0CLRENA0R/W0h向该位写入 0 无效,向该位写入 1 将禁用 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前使能值。

3.9.4.10 NVIC_ICER1 寄存器(偏移 = 184h)[复位 = 00000000h]

图 3-81 展示了 NVIC_ICER1,表 3-117 对其进行了介绍。

返回到汇总表

Irq 32 至 63 清除使能
该寄存器用于禁用中断并确定当前哪些中断处于启用状态。

图 3-81 NVIC_ICER1 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDCLRENA37CLRENA36CLRENA35CLRENA34CLRENA33CLRENA32
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-117 NVIC_ICER1 寄存器字段说明
字段类型复位说明
31-6RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5CLRENA37R/W0h向该位写入 0 无效,向该位写入 1 将禁用 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前使能值。
4CLRENA36R/W0h向该位写入 0 无效,向该位写入 1 将禁用 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前使能值。
3CLRENA35R/W0h向该位写入 0 无效,向该位写入 1 将禁用 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前使能值。
2CLRENA34R/W0h向该位写入 0 无效,向该位写入 1 将禁用 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前使能值。
1CLRENA33R/W0h向该位写入 0 无效,向该位写入 1 将禁用 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前使能值。
0CLRENA32R/W0h向该位写入 0 无效,向该位写入 1 将禁用 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前使能值。

3.9.4.11 NVIC_ISPR0 寄存器(偏移 = 200h)[复位 = 00000000h]

图 3-82 展示了 NVIC_ISPR0,表 3-118 对其进行了介绍。

返回到汇总表

Irq 0 至 31 设置挂起
该寄存器用于强制中断进入挂起状态并确定当前哪些中断处于挂起状态。

图 3-82 NVIC_ISPR0 寄存器
3130292827262524
SETPEND31SETPEND30SETPEND29SETPEND28SETPEND27SETPEND26SETPEND25SETPEND24
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
2322212019181716
SETPEND23SETPEND22SETPEND21SETPEND20SETPEND19SETPEND18SETPEND17SETPEND16
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
SETPEND15SETPEND14SETPEND13SETPEND12SETPEND11SETPEND10SETPEND9SETPEND8
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
76543210
SETPEND7SETPEND6SETPEND5SETPEND4SETPEND3SETPEND2SETPEND1SETPEND0
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-118 NVIC_ISPR0 寄存器字段说明
字段类型复位说明
31SETPEND31R/W0h向该位写入 0 无效,向该位写入 1 将挂起 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前状态。
30SETPEND30R/W0h向该位写入 0 无效,向该位写入 1 将挂起 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前状态。
29SETPEND29R/W0h向该位写入 0 无效,向该位写入 1 将挂起 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前状态。
28SETPEND28R/W0h向该位写入 0 无效,向该位写入 1 将挂起 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前状态。
27SETPEND27R/W0h向该位写入 0 无效,向该位写入 1 将挂起 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前状态。
26SETPEND26R/W0h向该位写入 0 无效,向该位写入 1 将挂起 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前状态。
25SETPEND25R/W0h向该位写入 0 无效,向该位写入 1 将挂起 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前状态。
24SETPEND24R/W0h向该位写入 0 无效,向该位写入 1 将挂起 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前状态。
23SETPEND23R/W0h向该位写入 0 无效,向该位写入 1 将挂起 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前状态。
22SETPEND22R/W0h向该位写入 0 无效,向该位写入 1 将挂起 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前状态。
21SETPEND21R/W0h向该位写入 0 无效,向该位写入 1 将挂起 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前状态。
20SETPEND20R/W0h向该位写入 0 无效,向该位写入 1 将挂起 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前状态。
19SETPEND19R/W0h向该位写入 0 无效,向该位写入 1 将挂起 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前状态。
18SETPEND18R/W0h向该位写入 0 无效,向该位写入 1 将挂起 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前状态。
17SETPEND17R/W0h向该位写入 0 无效,向该位写入 1 将挂起 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前状态。
16SETPEND16R/W0h向该位写入 0 无效,向该位写入 1 将挂起 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前状态。
15SETPEND15R/W0h向该位写入 0 无效,向该位写入 1 将挂起 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前状态。
14SETPEND14R/W0h向该位写入 0 无效,向该位写入 1 将挂起 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前状态。
13SETPEND13R/W0h向该位写入 0 无效,向该位写入 1 将挂起 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前状态。
12SETPEND12R/W0h向该位写入 0 无效,向该位写入 1 将挂起 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前状态。
11SETPEND11R/W0h向该位写入 0 无效,向该位写入 1 将挂起 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前状态。
10SETPEND10R/W0h向该位写入 0 无效,向该位写入 1 将挂起 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前状态。
9SETPEND9R/W0h向该位写入 0 无效,向该位写入 1 将挂起 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前状态。
8SETPEND8R/W0h向该位写入 0 无效,向该位写入 1 将挂起 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前状态。
7SETPEND7R/W0h向该位写入 0 无效,向该位写入 1 将挂起 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前状态。
6SETPEND6R/W0h向该位写入 0 无效,向该位写入 1 将挂起 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前状态。
5SETPEND5R/W0h向该位写入 0 无效,向该位写入 1 将挂起 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前状态。
4SETPEND4R/W0h向该位写入 0 无效,向该位写入 1 将挂起 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前状态。
3SETPEND3R/W0h向该位写入 0 无效,向该位写入 1 将挂起 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前状态。
2SETPEND2R/W0h向该位写入 0 无效,向该位写入 1 将挂起 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前状态。
1SETPEND1R/W0h向该位写入 0 无效,向该位写入 1 将挂起 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前状态。
0SETPEND0R/W0h向该位写入 0 无效,向该位写入 1 将挂起 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前状态。

3.9.4.12 NVIC_ISPR1 寄存器(偏移 = 204h)[复位 = 00000000h]

图 3-83 展示了 NVIC_ISPR1,表 3-119 对其进行了介绍。

返回到汇总表

Irq 32 至 63 设置挂起
该寄存器用于强制中断进入挂起状态并确定当前哪些中断处于挂起状态。

图 3-83 NVIC_ISPR1 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDSETPEND37SETPEND36SETPEND35SETPEND34SETPEND33SETPEND32
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-119 NVIC_ISPR1 寄存器字段说明
字段类型复位说明
31-6RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5SETPEND37R/W0h向该位写入 0 无效,向该位写入 1 将挂起 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前状态。
4SETPEND36R/W0h向该位写入 0 无效,向该位写入 1 将挂起 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前状态。
3SETPEND35R/W0h向该位写入 0 无效,向该位写入 1 将挂起 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前状态。
2SETPEND34R/W0h向该位写入 0 无效,向该位写入 1 将挂起 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前状态。
1SETPEND33R/W0h向该位写入 0 无效,向该位写入 1 将挂起 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前状态。
0SETPEND32R/W0h向该位写入 0 无效,向该位写入 1 将挂起 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前状态。

3.9.4.13 NVIC_ICPR0 寄存器(偏移 = 280h)[复位 = 00000000h]

图 3-84 展示了 NVIC_ICPR0,表 3-120 对其进行了介绍。

返回到汇总表

Irq 0 至 31 清除挂起
该寄存器用于清除挂起的中断并确定当前哪些中断处于挂起状态。

图 3-84 NVIC_ICPR0 寄存器
3130292827262524
CLRPEND31CLRPEND30CLRPEND29CLRPEND28CLRPEND27CLRPEND26CLRPEND25CLRPEND24
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
2322212019181716
CLRPEND23CLRPEND22CLRPEND21CLRPEND20CLRPEND19CLRPEND18CLRPEND17CLRPEND16
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
CLRPEND15CLRPEND14CLRPEND13CLRPEND12CLRPEND11CLRPEND10CLRPEND9CLRPEND8
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
76543210
CLRPEND7CLRPEND6CLRPEND5CLRPEND4CLRPEND3CLRPEND2CLRPEND1CLRPEND0
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-120 NVIC_ICPR0 寄存器字段说明
字段类型复位说明
31CLRPEND31R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 31 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。读取该位将返回其当前状态。
30CLRPEND30R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 30 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。读取该位将返回其当前状态。
29CLRPEND29R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 29 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。读取该位将返回其当前状态。
28CLRPEND28R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 28 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。读取该位将返回其当前状态。
27CLRPEND27R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 27 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。读取该位将返回其当前状态。
26CLRPEND26R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 26 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。读取该位将返回其当前状态。
25CLRPEND25R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 25 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。读取该位将返回其当前状态。
24CLRPEND24R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 24 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。读取该位将返回其当前状态。
23CLRPEND23R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 23 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。读取该位将返回其当前状态。
22CLRPEND22R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 22 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。读取该位将返回其当前状态。
21CLRPEND21R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 21 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。读取该位将返回其当前状态。
20CLRPEND20R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 20 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。读取该位将返回其当前状态。
19CLRPEND19R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 19 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。读取该位将返回其当前状态。
18CLRPEND18R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 18 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。读取该位将返回其当前状态。
17CLRPEND17R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 17 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。读取该位将返回其当前状态。
16CLRPEND16R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 16 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。读取该位将返回其当前状态。
15CLRPEND15R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 15 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。读取该位将返回其当前状态。
14CLRPEND14R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 14 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。读取该位将返回其当前状态。
13CLRPEND13R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 13 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。读取该位将返回其当前状态。
12CLRPEND12R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 12 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。读取该位将返回其当前状态。
11CLRPEND11R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 11 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。读取该位将返回其当前状态。
10CLRPEND10R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 10 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。读取该位将返回其当前状态。
9CLRPEND9R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 9 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。读取该位将返回其当前状态。
8CLRPEND8R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 8 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。读取该位将返回其当前状态。
7CLRPEND7R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 7 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。读取该位将返回其当前状态。
6CLRPEND6R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 6 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。读取该位将返回其当前状态。
5CLRPEND5R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 5 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。读取该位将返回其当前状态。
4CLRPEND4R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 4 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。读取该位将返回其当前状态。
3CLRPEND3R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 3 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。读取该位将返回其当前状态。
2CLRPEND2R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 2 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。读取该位将返回其当前状态。
1CLRPEND1R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 1 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。读取该位将返回其当前状态。
0CLRPEND0R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 0 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。读取该位将返回其当前状态。

3.9.4.14 NVIC_ICPR1 寄存器(偏移 = 284h)[复位 = 00000000h]

图 3-85 展示了 NVIC_ICPR1,表 3-121 对其进行了介绍。

返回到汇总表

Irq 32 至 63 清除挂起
该寄存器用于清除挂起的中断并确定当前哪些中断处于挂起状态。

图 3-85 NVIC_ICPR1 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDCLRPEND37CLRPEND36CLRPEND35CLRPEND34CLRPEND33CLRPEND32
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-121 NVIC_ICPR1 寄存器字段说明
字段类型复位说明
31-6RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5CLRPEND37R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 37 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。读取该位将返回其当前状态。
4CLRPEND36R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 36 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。读取该位将返回其当前状态。
3CLRPEND35R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 35 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。读取该位将返回其当前状态。
2CLRPEND34R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 34 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。读取该位将返回其当前状态。
1CLRPEND33R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 33 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。读取该位将返回其当前状态。
0CLRPEND32R/W0h向该位写入 0 无效,向该位写入 1 将清除相应挂起的 32 号中断(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。读取该位将返回其当前状态。

3.9.4.15 NVIC_IABR0 寄存器(偏移 = 300h)[复位 = 00000000h]

图 3-86 展示了 NVIC_IABR0,表 3-122 对其进行了介绍。

返回到汇总表

Irq 0 至 31 活动位
该寄存器用于确定哪些中断处于活动状态。该寄存器中的每个标志对应一个中断。

图 3-86 NVIC_IABR0 寄存器
3130292827262524
ACTIVE31ACTIVE30ACTIVE29ACTIVE28ACTIVE27ACTIVE26ACTIVE25ACTIVE24
R-0hR-0hR-0hR-0hR-0hR-0hR-0hR-0h
2322212019181716
ACTIVE23ACTIVE22ACTIVE21ACTIVE20ACTIVE19ACTIVE18ACTIVE17ACTIVE16
R-0hR-0hR-0hR-0hR-0hR-0hR-0hR-0h
15141312111098
ACTIVE15ACTIVE14ACTIVE13ACTIVE12ACTIVE11ACTIVE10ACTIVE9ACTIVE8
R-0hR-0hR-0hR-0hR-0hR-0hR-0hR-0h
76543210
ACTIVE7ACTIVE6ACTIVE5ACTIVE4ACTIVE3ACTIVE2ACTIVE1ACTIVE0
R-0hR-0hR-0hR-0hR-0hR-0hR-0hR-0h
表 3-122 NVIC_IABR0 寄存器字段说明
字段类型复位说明
31ACTIVE31R0h该位读值为 0 意味着中断线 31 处于非活动状态。该位读值为 1 意味着中断线 31 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。
30ACTIVE30R0h该位读值为 0 意味着中断线 30 处于非活动状态。该位读值为 1 意味着中断线 30 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。
29ACTIVE29R0h该位读值为 0 意味着中断线 29 处于非活动状态。该位读值为 1 意味着中断线 29 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。
28ACTIVE28R0h该位读值为 0 意味着中断线 28 处于非活动状态。该位读值为 1 意味着中断线 28 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。
27ACTIVE27R0h该位读值为 0 意味着中断线 27 处于非活动状态。该位读值为 1 意味着中断线 27 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。
26ACTIVE26R0h该位读值为 0 意味着中断线 26 处于非活动状态。该位读值为 1 意味着中断线 26 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。
25ACTIVE25R0h该位读值为 0 意味着中断线 25 处于非活动状态。该位读值为 1 意味着中断线 25 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。
24ACTIVE24R0h该位读值为 0 意味着中断线 24 处于非活动状态。该位读值为 1 意味着中断线 24 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。
23ACTIVE23R0h该位读值为 0 意味着中断线 23 处于非活动状态。该位读值为 1 意味着中断线 23 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。
22ACTIVE22R0h该位读值为 0 意味着中断线 22 处于非活动状态。该位读值为 1 意味着中断线 22 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。
21ACTIVE21R0h该位读值为 0 意味着中断线 21 处于非活动状态。该位读值为 1 意味着中断线 21 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。
20ACTIVE20R0h该位读值为 0 意味着中断线 20 处于非活动状态。该位读值为 1 意味着中断线 20 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。
19ACTIVE19R0h该位读值为 0 意味着中断线 19 处于非活动状态。该位读值为 1 意味着中断线 19 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。
18ACTIVE18R0h该位读值为 0 意味着中断线 18 处于非活动状态。该位读值为 1 意味着中断线 18 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。
17ACTIVE17R0h该位读值为 0 意味着中断线 17 处于非活动状态。该位读值为 1 意味着中断线 17 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。
16ACTIVE16R0h该位读值为 0 意味着中断线 16 处于非活动状态。该位读值为 1 意味着中断线 16 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。
15ACTIVE15R0h该位读值为 0 意味着中断线 15 处于非活动状态。该位读值为 1 意味着中断线 15 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。
14ACTIVE14R0h该位读值为 0 意味着中断线 14 处于非活动状态。该位读值为 1 意味着中断线 14 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。
13ACTIVE13R0h该位读值为 0 意味着中断线 13 处于非活动状态。该位读值为 1 意味着中断线 13 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。
12ACTIVE12R0h该位读值为 0 意味着中断线 12 处于非活动状态。该位读值为 1 意味着中断线 12 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。
11ACTIVE11R0h该位读值为 0 意味着中断线 11 处于非活动状态。该位读值为 1 意味着中断线 11 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。
10ACTIVE10R0h该位读值为 0 意味着中断线 10 处于非活动状态。该位读值为 1 意味着中断线 10 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。
9ACTIVE9R0h该位读值为 0 意味着中断线 9 处于非活动状态。该位读值为 1 意味着中断线 9 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。
8ACTIVE8R0h该位读值为 0 意味着中断线 8 处于非活动状态。该位读值为 1 意味着中断线 8 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。
7ACTIVE7R0h该位读值为 0 意味着中断线 7 处于非活动状态。该位读值为 1 意味着中断线 7 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。
6ACTIVE6R0h该位读值为 0 意味着中断线 6 处于非活动状态。该位读值为 1 意味着中断线 6 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。
5ACTIVE5R0h该位读值为 0 意味着中断线 5 处于非活动状态。该位读值为 1 意味着中断线 5 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。
4ACTIVE4R0h该位读值为 0 意味着中断线 4 处于非活动状态。该位读值为 1 意味着中断线 4 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。
3ACTIVE3R0h该位读值为 0 意味着中断线 3 处于非活动状态。该位读值为 1 意味着中断线 3 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。
2ACTIVE2R0h该位读值为 0 意味着中断线 2 处于非活动状态。该位读值为 1 意味着中断线 2 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。
1ACTIVE1R0h该位读值为 0 意味着中断线 1 处于非活动状态。该位读值为 1 意味着中断线 1 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。
0ACTIVE0R0h该位读值为 0 意味着中断线 0 处于非活动状态。该位读值为 1 意味着中断线 0 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。

3.9.4.16 NVIC_IABR1 寄存器(偏移 = 304h)[复位 = 00000000h]

图 3-87 展示了 NVIC_IABR1,表 3-123 对其进行了介绍。

返回到汇总表

Irq 32 至 63 活动位
该寄存器用于确定哪些中断处于活动状态。该寄存器中的每个标志对应一个中断。

图 3-87 NVIC_IABR1 寄存器
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVED
R-0h
15141312111098
RESERVED
R-0h
76543210
RESERVEDACTIVE37ACTIVE36ACTIVE35ACTIVE34ACTIVE33ACTIVE32
R-0hR-0hR-0hR-0hR-0hR-0hR-0h
表 3-123 NVIC_IABR1 寄存器字段说明
字段类型复位说明
31-6RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5ACTIVE37R0h该位读值为 0 意味着中断线 37 处于非活动状态。该位读值为 1 意味着中断线 37 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。
4ACTIVE36R0h该位读值为 0 意味着中断线 36 处于非活动状态。该位读值为 1 意味着中断线 36 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。
3ACTIVE35R0h该位读值为 0 意味着中断线 35 处于非活动状态。该位读值为 1 意味着中断线 35 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。
2ACTIVE34R0h该位读值为 0 意味着中断线 34 处于非活动状态。该位读值为 1 意味着中断线 34 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。
1ACTIVE33R0h该位读值为 0 意味着中断线 33 处于非活动状态。该位读值为 1 意味着中断线 33 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。
0ACTIVE32R0h该位读值为 0 意味着中断线 32 处于非活动状态。该位读值为 1 意味着中断线 32 处于活动状态(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。

3.9.4.17 NVIC_IPR0 寄存器(偏移 = 400h)[复位 = 00000000h]

图 3-88 展示了 NVIC_IPR0,表 3-124 对其进行了介绍。

返回到汇总表

Irq 0 至 3 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-88 NVIC_IPR0 寄存器
313029282726252423222120191817161514131211109876543210
PRI_3PRI_2PRI_1PRI_0
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-124 NVIC_IPR0 寄存器字段说明
字段类型复位说明
31-24PRI_3R/W0h中断 3 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL3.EV)。
23-16PRI_2R/W0h中断 2 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL2.EV)。
15-8PRI_1R/W0h中断 1 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL1.EV)。
7-0PRI_0R/W0h中断 0 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL0.EV)。

3.9.4.18 NVIC_IPR1 寄存器(偏移 = 404h)[复位 = 00000000h]

图 3-89 展示了 NVIC_IPR1,表 3-125 对其进行了介绍。

返回到汇总表

Irq 4 至 7 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-89 NVIC_IPR1 寄存器
313029282726252423222120191817161514131211109876543210
PRI_7PRI_6PRI_5PRI_4
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-125 NVIC_IPR1 寄存器字段说明
字段类型复位说明
31-24PRI_7R/W0h中断 7 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL7.EV)。
23-16PRI_6R/W0h中断 6 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL6.EV)。
15-8PRI_5R/W0h中断 5 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL5.EV)。
7-0PRI_4R/W0h中断 4 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL4.EV)。

3.9.4.19 NVIC_IPR2 寄存器(偏移 = 408h)[复位 = 00000000h]

图 3-90 展示了 NVIC_IPR2,表 3-126 对其进行了介绍。

返回到汇总表

Irq 8 至 11 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-90 NVIC_IPR2 寄存器
313029282726252423222120191817161514131211109876543210
PRI_11PRI_10PRI_9PRI_8
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-126 NVIC_IPR2 寄存器字段说明
字段类型复位说明
31-24PRI_11R/W0h中断 11 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL11.EV)。
23-16PRI_10R/W0h中断 10 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL10.EV)。
15-8PRI_9R/W0h中断 9 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL9.EV)。
7-0PRI_8R/W0h中断 8 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL8.EV)。

3.9.4.20 NVIC_IPR3 寄存器(偏移 = 40Ch)[复位 = 00000000h]

图 3-91 展示了 NVIC_IPR3,表 3-127 对其进行了介绍。

返回到汇总表

Irq 12 至 15 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-91 NVIC_IPR3 寄存器
313029282726252423222120191817161514131211109876543210
PRI_15PRI_14PRI_13PRI_12
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-127 NVIC_IPR3 寄存器字段说明
字段类型复位说明
31-24PRI_15R/W0h中断 15 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL15.EV)。
23-16PRI_14R/W0h中断 14 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL14.EV)。
15-8PRI_13R/W0h中断 13 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL13.EV)。
7-0PRI_12R/W0h中断 12 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL12.EV)。

3.9.4.21 NVIC_IPR4 寄存器(偏移 = 410h)[复位 = 00000000h]

图 3-92 展示了 NVIC_IPR4,表 3-128 对其进行了介绍。

返回到汇总表

Irq 16 至 19 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-92 NVIC_IPR4 寄存器
313029282726252423222120191817161514131211109876543210
PRI_19PRI_18PRI_17PRI_16
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-128 NVIC_IPR4 寄存器字段说明
字段类型复位说明
31-24PRI_19R/W0h中断 19 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL19.EV)。
23-16PRI_18R/W0h中断 18 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL18.EV)。
15-8PRI_17R/W0h中断 17 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL17.EV)。
7-0PRI_16R/W0h中断 16 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL16.EV)。

3.9.4.22 NVIC_IPR5 寄存器(偏移 = 414h)[复位 = 00000000h]

图 3-93 展示了 NVIC_IPR5,表 3-129 对其进行了介绍。

返回到汇总表

Irq 20 至 23 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-93 NVIC_IPR5 寄存器
313029282726252423222120191817161514131211109876543210
PRI_23PRI_22PRI_21PRI_20
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-129 NVIC_IPR5 寄存器字段说明
字段类型复位说明
31-24PRI_23R/W0h中断 23 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL23.EV)。
23-16PRI_22R/W0h中断 22 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL22.EV)。
15-8PRI_21R/W0h中断 21 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL21.EV)。
7-0PRI_20R/W0h中断 20 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL20.EV)。

3.9.4.23 NVIC_IPR6 寄存器(偏移 = 418h)[复位 = 00000000h]

图 3-94 展示了 NVIC_IPR6,表 3-130 对其进行了介绍。

返回到汇总表

Irq 24 至 27 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-94 NVIC_IPR6 寄存器
313029282726252423222120191817161514131211109876543210
PRI_27PRI_26PRI_25PRI_24
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-130 NVIC_IPR6 寄存器字段说明
字段类型复位说明
31-24PRI_27R/W0h中断 27 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL27.EV)。
23-16PRI_26R/W0h中断 26 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL26.EV)。
15-8PRI_25R/W0h中断 25 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL25.EV)。
7-0PRI_24R/W0h中断 24 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL24.EV)。

3.9.4.24 NVIC_IPR7 寄存器(偏移 = 41Ch)[复位 = 00000000h]

图 3-95 展示了 NVIC_IPR7,表 3-131 对其进行了介绍。

返回到汇总表

Irq 28 至 31 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-95 NVIC_IPR7 寄存器
313029282726252423222120191817161514131211109876543210
PRI_31PRI_30PRI_29PRI_28
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-131 NVIC_IPR7 寄存器字段说明
字段类型复位说明
31-24PRI_31R/W0h中断 31 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL31.EV)。
23-16PRI_30R/W0h中断 30 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL30.EV)。
15-8PRI_29R/W0h中断 29 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL29.EV)。
7-0PRI_28R/W0h中断 28 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL28.EV)。

3.9.4.25 NVIC_IPR8 寄存器(偏移 = 420h)[复位 = 00000000h]

图 3-96 展示了 NVIC_IPR8,表 3-132 对其进行了介绍。

返回到汇总表

Irq 32 至 35 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-96 NVIC_IPR8 寄存器
313029282726252423222120191817161514131211109876543210
PRI_35PRI_34PRI_33PRI_32
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-132 NVIC_IPR8 寄存器字段说明
字段类型复位说明
31-24PRI_35R/W0h中断 35 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL35.EV)。
23-16PRI_34R/W0h中断 34 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL34.EV)。
15-8PRI_33R/W0h中断 33 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL33.EV)。
7-0PRI_32R/W0h中断 32 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL32.EV)。

3.9.4.26 NVIC_IPR9 寄存器(偏移 = 424h)[复位 = 00000000h]

图 3-97 展示了 NVIC_IPR9,表 3-133 对其进行了介绍。

返回到汇总表

Irq 32 至 35 的优先级
该寄存器用于为每个可用中断分配优先级,范围为 0 至 255。0 是最高优先级,255 是最低优先级。中断优先级寄存器的解释根据 AIRCR.PRIGROUP 中的设置而变化。

图 3-97 NVIC_IPR9 寄存器
313029282726252423222120191817161514131211109876543210
RESERVEDPRI_37PRI_36
R/W-0hR/W-0hR/W-0h
表 3-133 NVIC_IPR9 寄存器字段说明
字段类型复位说明
31-16RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
15-8PRI_37R/W0h中断 37 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL37.EV)。
7-0PRI_36R/W0h中断 36 的优先级(有关详细信息,请参阅 EVENT:CPUIRQSEL36.EV)。

3.9.4.27 CPUID 寄存器(偏移 = D00h)[复位 = 410FC241h]

图 3-98 展示了 CPUID,表 3-134 中对此进行了介绍。

返回到汇总表

CPUID 基地址
该寄存器可确定处理器内核的 ID 号、处理器内核的版本号以及处理器内核的实现细节。

图 3-98 CPUID 寄存器
31302928272625242322212019181716
IMPLEMENTERVARIANT常量
R-41hR-0hR-Fh
1514131211109876543210
PARTNO修订版本
R-C24hR-1h
表 3-134 CPUID 寄存器字段说明
字段类型复位说明
31-24IMPLEMENTERR41h实现者代码。
23-20型号R0h实现定义的变体编号。
19-16常量RFh读为 0xF
15-4PARTNORC24h系列内部的处理器编号。
3-0修订版本R1h实现定义的版本号。

3.9.4.28 ICSR 寄存器(偏移 = D04h)[复位 = 00000000h]

图 3-99 展示了 ICSR,表 3-135 中对此进行了介绍。

返回到汇总表

中断控制状态
该寄存器用于设置挂起的不可屏蔽中断 (NMI)、设置或清除挂起的 SVC、设置或清除挂起的 SysTick、检查挂起的异常、检查具有最高优先级的挂起异常的矢量编号,以及检查活动异常的矢量编号。

图 3-99 ICSR 寄存器
3130292827262524
NMIPENDSETRESERVEDPENDSVSETPENDSVCLRPENDSTSETPENDSTCLRRESERVED
R/W-0hR/W-0hR/W-0hW-XR/W-0hW-XR-0h
2322212019181716
ISRPREEMPTISRPENDINGRESERVEDVECTPENDING
R-0hR-0hR-0hR-0h
15141312111098
VECTPENDINGRETTOBASERESERVEDVECTACTIVE
R-0hR-0hR-0hR-0h
76543210
VECTACTIVE
R-0h
表 3-135 ICSR 寄存器字段说明
字段类型复位说明
31NMIPENDSETR/W0h设置挂起的 NMI 位。设置该位会挂起并激活 NMI。由于 NMI 是具有最高优先级的中断,因此它会在注册后立即生效。
0:无操作
1:设置挂起的 NMI
30-29RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
28PENDSVSETR/W0h设置挂起的 pendSV 位。
0:无操作
1:设置挂起的 PendSV
27PENDSVCLRWX清除挂起的 pendSV 位
0:无操作
1:清除挂起的 pendSV
26PENDSTSETR/W0h设置挂起的 SysTick 位。
0:无操作
1:设置挂起的 SysTick
25PENDSTCLRWX清除挂起的 SysTick 位
0:无操作
1:清除挂起的 SysTick
24RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
23ISRPREEMPTR0h该字段只能在调试时使用。它表示将在下一个运行周期中响应挂起的中断。如果 DHCSR.C_MASKINTS = 0,则处理中断。
0:不处理挂起的异常。
1:在退出调试暂停状态时处理挂起的异常
22ISRPENDINGR0h中断挂起标志。不包括 NMI 和故障。
0x0:中断未挂起
0x1:中断挂起
21-18RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
17-12VECTPENDINGR0h挂起的 ISR 编号字段。该字段包含具有最高优先级的挂起 ISR 的中断编号。
11RETTOBASER0h指示是否有被抢占的活动异常:
0:有被抢占的活动异常待执行
1:没有活动异常,或者当前正在执行的异常是唯一的活动异常。
10-9RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
8-0VECTACTIVER0h活动 ISR 编号字段。复位会清除该字段。

3.9.4.29 VTOR 寄存器(偏移 = D08h)[复位 = 00000000h]

图 3-100 展示了 VTOR,表 3-136 中对此进行了介绍。

返回到汇总表

矢量表偏移
该寄存器用于重定位矢量表基地址。矢量表基地址偏移决定了距存储器映射底部的偏移量。矢量表基地址偏移的两个最高有效位和七个最低有效位必须为 0。矢量表基地址偏移寄存器中允许更改的部分是 TBLOFF。

图 3-100 VTOR 寄存器
3130292827262524
RESERVEDTBLOFF
R/W-0hR/W-0h
2322212019181716
TBLOFF
R/W-0h
15141312111098
TBLOFF
R/W-0h
76543210
TBLOFFRESERVED
R/W-0hR/W-0h
表 3-136 VTOR 寄存器字段说明
字段类型复位说明
31-30RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
29-7TBLOFFR/W0h矢量表基地址偏移寄存器的位 29 到 7。
6-0RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.30 AIRCR 寄存器(偏移 = D0Ch)[复位 = FA050000h]

图 3-101 展示了 AIRCR,表 3-137 中对此进行了介绍。

返回到汇总表

应用中断/复位控制
该寄存器用于确定数据字节序、清除所有活动状态信息以进行调试或从硬故障中恢复、执行系统复位,以及更改优先级分组位置(二进制点)。

图 3-101 AIRCR 寄存器
3130292827262524
VECTKEY
R/W-FA05h
2322212019181716
VECTKEY
R/W-FA05h
15141312111098
ENDIANESSRESERVEDPRIGROUP
R-0hR-0hR/W-0h
76543210
RESERVEDSYSRESETREQVECTCLRACTIVEVECTRESET
R/W-0hW-0hW-0hW-0h
表 3-137 AIRCR 寄存器字段说明
字段类型复位说明
31-16VECTKEYR/WFA05h寄存器密钥。写入该寄存器 (AIRCR) 需要 VECTKEY 字段为 0x05FA。否则写入值会被忽略。读取始终返回 0xFA05。
15ENDIANESSR0h数据字节序位
0h = 小端字节序
1h = 大端字节序
14-11RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
10-8PRIGROUPR/W0h中断优先级分组字段。该字段是一个二进制点位置指示符,用于为具有相同抢占级别的异常创建子优先级。它将中断优先级寄存器(NVIC_IPR0、NVIC_IPR1 至 NVIC_IPR8)中的 PRI_n 字段分为抢占级别和子优先级。二进制点位于值的左侧。这意味着 PRIGROUP 值表示一个从最低有效位 (LSB) 左侧起始的点。根据分配给优先级的位数以及实现选择,最小值可能不是 0。
7-3RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
2SYSRESETREQW0h请求热复位。设置该位不会阻止暂停调试运行。
1VECTCLRACTIVEW0h清除活动 NMI、故障和中断的所有活动状态信息。应用程序负责重新初始化堆栈。该位用于在调试期间返回到已知状态。该位会自行清除。此操作不会清除 IPSR。因此,如果应用程序使用该位,则只能在激活的基础级别使用,或在可以设置活动位的系统处理程序内使用。
0VECTRESETW0h系统复位位。复位系统,调试组件除外。该位保留用于调试,仅当内核处于暂停状态时,才能写入 1。该位会自行清除。在内核未处于暂停状态时向该位写入 1 可能会导致不可预测的行为。

3.9.4.31 SCR 寄存器(偏移 = D10h)[复位 = 00000000h]

图 3-102 展示了 SCR,表 3-138 中对此进行了介绍。

返回到汇总表

系统控制
该寄存器用于电源管理功能,即当处理器可以进入低功耗状态时向系统发出信号,从而控制处理器进入和退出低功耗状态的方式。

图 3-102 SCR 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDSEVONPENDRESERVEDSLEEPDEEPSLEEPONEXITRESERVED
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-138 SCR 寄存器字段说明
字段类型复位说明
31-5RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
4SEVONPENDR/W0h挂起时发送事件位:
0:只有启用的中断或事件才能唤醒处理器,禁用的中断不可以
1:启用的事件和所有中断(包括禁用的中断)都可以唤醒处理器。
当事件或中断进入挂起状态时,事件信号会将处理器从 WFE 状态唤醒。
如果处理器没有等待事件,则会记录事件并影响下一个 WFE。
处理器还会在执行 SEV 指令时被唤醒。
3RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
2SLEEPDEEPR/W0h控制处理器使用睡眠模式还是深度睡眠模式作为其低功耗模式
0h = 睡眠模式
1h = 深度睡眠模式
1SLEEPONEXITR/W0h从处理程序模式返回线程模式时,在退出时进入睡眠状态。使中断驱动的应用程序能够避免返回到空闲的主应用程序。
0:返回线程模式时不进入睡眠状态
1:在 ISR 退出时进入睡眠状态
0RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.32 CCR 寄存器(偏移 = D14h)[复位 = 00000200h]

图 3-103 展示了 CCR,表 3-139 中对此进行了介绍。

返回到汇总表

配置控制
该寄存器用于使能 NMI、硬故障和 FAULTMASK 以忽略总线故障、除零陷阱和非对齐访问,使用户能够访问软件触发中断寄存器 (STIR),并控制进入线程模式的行为。

图 3-103 CCR 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVEDSTKALIGNBFHFNMIGN
R/W-0hR/W-1hR/W-0h
76543210
RESERVEDDIV_0_TRPUNALIGN_TRPRESERVEDUSERSETMPENDNONBASETHREDENA
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-139 CCR 寄存器字段说明
字段类型复位说明
31-10RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
9STKALIGNR/W1h栈对齐位。
0:在异常进入时,对于在异常发生之前使用的堆栈指针 (SP),只能保证 4 字节对齐。
1:在异常进入时,在异常发生之前使用的 SP 会调整为 8 字节对齐,并保存用于恢复的上下文。在返回关联的异常时恢复 SP。
8BFHFNMIGNR/W0h使能优先级为 -1 或 -2 的处理程序,以忽略由加载和存储指令引起的数据总线故障。这适用于硬故障、NMI 和 FAULTMASK 升级处理程序:
0:加载和存储指令导致的数据总线故障会导致锁定
1:加载和存储指令导致的数据总线故障会被忽略。
仅当处理程序及其数据位于绝对安全的存储器中时,才将该位设置为 1。
该位的正常用途是探测系统器件和桥接器以检测问题。
7-5RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
4DIV_0_TRPR/W0h在处理器执行除数为 0 的 SDIV 或 UDIV 指令时使能故障触发或暂停:
0:不触发除零异常。在此模式下,除以零将返回商 0。
1:触发除零异常。相关的使用故障状态寄存器位为 CFSR.DIVBYZERO。
3UNALIGN_TRPR/W0h使能非对齐访问陷阱:
0:不触发非对齐半字和字访问异常
1:触发非对齐半字和字访问异常。相关的使用故障状态寄存器位为 CFSR.UNALIGNED。
如果该位设置为 1,则非对齐访问会生成使用故障。
无论 UNALIGN_TRP 中的值如何,非对齐的 LDM、STM、LDRD 和 STRD 指令始终导致故障。
2RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
1USERSETMPENDR/W0h使能对 STIR 的非特权软件访问:
0:用户代码不允许写入软件触发中断寄存器 (STIR)。
1:用户代码可以写入软件触发中断寄存器 (STIR),以触发(挂起)与主堆栈指针关联的主异常。
0NONBASETHREDENAR/W0h指示处理器进入线程模式的方式:
0:只有在没有活动异常时,处理器才能进入线程模式。
1:处理器可以使用适当的返回值 (EXC_RETURN),从任何级别进入线程模式。
在处理程序模式下,当以下指令之一将值 0xFXXXXXXX 加载到 PC 时,会发生异常返回:
- 包含加载 PC 操作的 POP/LDM。
- 以 PC 为目的地的 LDR。
- 使用任意寄存器的 BX。
写入 PC 的值会被截获,称为 EXC_RETURN 值。

3.9.4.33 SHPR1 寄存器(偏移 = D18h)[复位 = 00000000h]

图 3-104 展示了 SHPR1,表 3-140 对其进行了介绍。

返回到汇总表

系统处理程序 4-7 的优先级
该寄存器用于为以下系统处理程序分配优先级:存储器管理、总线故障和使用故障。系统处理程序是一类特殊的异常处理程序,可以设置为任何优先级。其中大多数可以开启屏蔽(启用)或解除屏蔽(禁用)。禁用时,故障始终被视为硬故障。

图 3-104 SHPR1 寄存器
313029282726252423222120191817161514131211109876543210
RESERVEDPRI_6PRI_5PRI_4
R-0hR/W-0hR/W-0hR/W-0h
表 3-140 SHPR1 寄存器字段说明
字段类型复位说明
31-24RESERVEDR0h保留
23-16PRI_6R/W0h系统处理程序 6 的优先级:UsageFault
15-8PRI_5R/W0h系统处理程序 5 的优先级:BusFault
7-0PRI_4R/W0h系统处理程序 4 的优先级:MemManage

3.9.4.34 SHPR2 寄存器(偏移 = D1Ch)[复位 = 00000000h]

图 3-105 展示了 SHPR2,表 3-141 对其进行了介绍。

返回到汇总表

系统处理程序 8-11 的优先级
该寄存器用于为 SVC 处理程序分配优先级。系统处理程序是一类特殊的异常处理程序,可以设置为任何优先级。其中大多数可以开启屏蔽(启用)或解除屏蔽(禁用)。禁用时,故障始终被视为硬故障。

图 3-105 SHPR2 寄存器
313029282726252423222120191817161514131211109876543210
PRI_11RESERVED
R/W-0hR-0h
表 3-141 SHPR2 寄存器字段说明
字段类型复位说明
31-24PRI_11R/W0h系统处理程序 11 的优先级:SVCall
23-0RESERVEDR0h保留

3.9.4.35 SHPR3 寄存器(偏移 = D20h)[复位 = 00000000h]

图 3-106 展示了 SHPR3,表 3-142 对其进行了介绍。

返回到汇总表

系统处理程序 12-15 的优先级
该寄存器用于为以下系统处理程序分配优先级:SysTick、PendSV 和调试监视器。系统处理程序是一类特殊的异常处理程序,可以设置为任何优先级。其中大多数可以开启屏蔽(启用)或解除屏蔽(禁用)。禁用时,故障始终被视为硬故障。

图 3-106 SHPR3 寄存器
313029282726252423222120191817161514131211109876543210
PRI_15PRI_14RESERVEDPRI_12
R/W-0hR/W-0hR-0hR/W-0h
表 3-142 SHPR3 寄存器字段说明
字段类型复位说明
31-24PRI_15R/W0h系统处理程序 15 的优先级:SysTick 异常
23-16PRI_14R/W0h系统处理程序 14 的优先级:PendSV
15-8RESERVEDR0h保留
7-0PRI_12R/W0h系统处理程序 12 的优先级:调试监视器

3.9.4.36 SHCSR 寄存器(偏移 = D24h)[复位 = 00000000h]

图 3-107 展示了 SHCSR,表 3-143 中对此进行了介绍。

返回到汇总表

系统处理程序控制和状态
该寄存器用于启用或禁用系统处理程序、确定总线故障、存储器管理故障和 SVC 的挂起状态,以及确定系统处理程序的活动状态。如果在其故障处理程序禁用时出现故障情况,则故障会升级为硬故障。

图 3-107 SHCSR 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVEDUSGFAULTENABUSFAULTENAMEMFAULTENA
R/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
SVCALLPENDEDBUSFAULTPENDEDMEMFAULTPENDEDUSGFAULTPENDEDSYSTICKACTPENDSVACTRESERVEDMONITORACT
R-0hR-0hR-0hR-0hR-0hR-0hR-0hR-0h
76543210
SVCALLACTRESERVEDUSGFAULTACTRESERVEDBUSFAULTACTMEMFAULTACT
R-0hR-0hR-0hR-0hR-0hR-0h
表 3-143 SHCSR 寄存器字段说明
字段类型复位说明
31-19RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
18USGFAULTENAR/W0h使用故障系统处理程序使能
0h = 禁用异常
1h = 启用异常
17BUSFAULTENAR/W0h总线故障系统处理程序使能
0h = 禁用异常
1h = 启用异常
16MEMFAULTENAR/W0h存储器管理故障系统处理程序使能
0h = 禁用异常
1h = 启用异常
15SVCALLPENDEDR0hSVCall 挂起
0h = 异常处于非活动状态
1h = 异常挂起。
14BUSFAULTPENDEDR0h总线故障挂起
0h = 异常处于非活动状态
1h = 异常挂起。
13MEMFAULTPENDEDR0h存储器管理异常挂起
0h = 异常处于非活动状态
1h = 异常挂起。
12USGFAULTPENDEDR0h使用故障挂起
0h = 异常处于非活动状态
1h = 异常挂起。
11SYSTICKACTR0hSysTick 活动标志。
0x0:非活动
0x1:活动
0h = 异常处于非活动状态
1h = 异常处于活动状态
10PENDSVACTR0hPendSV 活动
0x0:非活动
0x1:有效
9RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
8MONITORACTR0h调试监视器活动
0h = 异常处于非活动状态
1h = 异常处于活动状态
7SVCALLACTR0hSVCall 活动
0h = 异常处于非活动状态
1h = 异常处于活动状态
6-4RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
3USGFAULTACTR0h使用故障异常活动
0h = 异常处于非活动状态
1h = 异常处于活动状态
2RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
1BUSFAULTACTR0h总线故障异常活动
0h = 异常处于非活动状态
1h = 异常处于活动状态
0MEMFAULTACTR0h存储器管理异常活动
0h = 异常处于非活动状态
1h = 异常处于活动状态

3.9.4.37 CFSR 寄存器(偏移 = D28h)[复位 = 00000000h]

图 3-108 展示了 CFSR,表 3-144 中对此进行了介绍。

返回到汇总表

可配置故障状态
该寄存器用于获取有关本地故障的信息。这些寄存器包括三个子部分:第一个字节是存储器管理故障状态寄存器 (MMFSR)。第二个字节是总线故障状态寄存器 (BFSR)。高半字是使用故障状态寄存器 (UFSR)。这些寄存器中的标志指示本地故障出现的原因。如果发生多个故障,可以设置多个标志。这些寄存器为读/写清型寄存器。这意味着它们可以正常读取,但向任何位写入 1 都会清除该位。
CFSR 可按字节访问。CFSR 或其子寄存器可按如下方式访问:
可以对 CFSR 寄存器进行以下访问:
- 通过对 0xE000ED28 进行字访问来访问完整的寄存器。
- 通过对 0xE000ED28 进行字节访问来访问 MMFSR
- 通过对 0xE000ED28 进行半字访问来访问 MMFSR 和 BFSR
- 通过对 0xE000ED29 进行字节访问来访问 BFSR
- 通过对 0xE000ED2A 进行半字访问来访问 UFSR。

图 3-108 CFSR 寄存器
3130292827262524
RESERVEDDIVBYZEROUNALIGNED
R/W-0hR/W-0hR/W-0h
2322212019181716
RESERVEDNOCPINVPCINVSTATEUNDEFINSTR
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
BFARVALIDRESERVEDSTKERRUNSTKERRIMPRECISERRPRECISERRIBUSERR
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
76543210
MMARVALIDRESERVEDMSTKERRMUNSTKERRRESERVEDDACCVIOLIACCVIOL
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-144 CFSR 寄存器字段说明
字段类型复位说明
31-26RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
25DIVBYZEROR/W0hCCR.DIV_0_TRP(请参阅第 8-26 页的“配置控制寄存器”)已启用且 SDIV 或 UDIV 指令使用的除数为 0 时,会发生该故障。指令将被执行,且返回的 PC 指向该指令。如果未设置 CCR.DIV_0_TRP,则除法运算将返回商 0。
24UNALIGNEDR/W0h当 CCR.UNALIGN_TRP 已启用且尝试进行非对齐存储器访问时,会发生此故障。无论 CCR.UNALIGN_TRP 的设置如何,非对齐的 LDM/STM/LDRD/STRD 指令始终导致故障。
23-20RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
19NOCPR/W0h尝试使用协处理器指令。处理器不支持协处理器指令。
18INVPCR/W0h尝试非法将 EXC_RETURN 加载到 PC 中。无效指令、无效上下文、无效值。返回 PC 指向尝试设置 PC 的指令。
17INVSTATER/W0h表示尝试在无效 EPSR 状态下执行(例如,在 BX 类型指令更改状态后)。这包括进入异常或从异常返回后的状态变化,以及互操作指令引起的状态变化。返回 PC 指向导致故障的指令,并且携带无效状态。
16UNDEFINSTRR/W0h当处理器尝试执行未定义的指令时,设置该位。未定义的指令是指处理器无法解码的指令。返回 PC 指向未定义的指令。
15BFARVALIDR/W0h如果总线故障地址寄存器 (BFAR) 包含有效地址,则会设置该位。在地址已知的总线故障发生后,同样设置该位。其他故障则会清除该位,例如后发生的存储器管理故障。如果发生总线故障且该故障由于优先级而升级为硬故障,则硬故障处理程序必须清除该位。这可防止在返回已压栈的活动总线故障处理程序时,因其 BFAR 值已被覆写而出现问题。
14-13RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
12STKERRR/W0h异常压栈过程已导致一个或多个总线故障。仍会调整 SP,堆栈上下文区域中的值可能不正确。不写入 BFAR。
11UNSTKERRR/W0h异常返回时的出栈过程已导致一个或多个总线故障。这会链接到处理程序,以便保留原始返回栈。不会因故障返回而调整 SP,也不会执行新的保存。不写入 BFAR。
10IMPRECISERRR/W0h数据总线不精确错误。这是一个总线故障,但返回 PC 与导致该故障的指令无关。这不是同步故障。因此,如果在当前激活的优先级高于总线故障时检测到该故障,则只会挂起该故障。当返回到较低优先级的激活时,总线故障激活。如果在返回较低优先级的异常之前发生精确故障,处理程序会同时检测到 IMPRECISERR 置位以及某个精确故障状态位被置位。不写入 BFAR。
9PRECISERRR/W0h精确数据总线错误返回。
8IBUSERRR/W0h指令总线错误标志。该标志由预取错误设置。故障会在该指令处停止,因此如果错误在分支影子下发生,则不会发生故障。不写入 BFAR。
7MMARVALIDR/W0h存储器管理地址寄存器 (MMFAR) 地址有效标志。后到达的故障(如总线故障)可以清除存储器管理故障。如果发生存储器管理故障且该故障由于优先级而升级为硬故障,则硬故障处理程序必须清除该位。这可防止在返回已压栈的活动存储器管理处理程序时,因其 MMFAR 值已被覆写而出现问题。
6-5RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
4MSTKERRR/W0h异常压栈过程已导致一个或多个访问违例。仍会调整 SP,堆栈上下文区域中的值可能不正确。不写入 MMFAR。
3MUNSTKERRR/W0h异常返回时的出栈过程已导致一个或多个访问违例。这会链接到处理程序,以便保留原始返回栈。不会因故障返回而调整 SP,也不会执行新的保存。不写入 MMFAR。
2RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
1DACCVIOLR/W0h数据访问违例标志。如果尝试在不允许操作的位置加载或存储,则会设置此标志。返回 PC 指向导致故障的指令。该错误会将所尝试访问的地址加载到 MMFAR 中。
0IACCVIOLR/W0h指令访问违例标志。如果尝试从不允许执行的位置获取指令,则会设置此标志。即使 MPU 已被禁用或不存在,但只要对 XN 区域进行任何访问,就会发生这种情况。返回 PC 指向导致故障的指令。不写入 MMFAR。

3.9.4.38 HFSR 寄存器(偏移 = D2Ch)[复位 = 00000000h]

图 3-109 展示了 HFSR,表 3-145 中对此进行了介绍。

返回到汇总表

硬故障状态
该寄存器用于获取有关激活硬故障处理程序的事件的信息。该寄存器是写清型寄存器。这意味着向某个位写入 1 会清除该位。

图 3-109 HFSR 寄存器
3130292827262524
DEBUGEVTFORCEDRESERVED
R/W1C-0hR/W1C-0hR/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDVECTTBLRESERVED
R/W-0hR/W1C-0hR/W-0h
表 3-145 HFSR 寄存器字段说明
字段类型复位说明
31DEBUGEVTR/W1C0h如果存在与调试相关的故障,则设置该位。仅当未启用暂停调试时,才会发生该故障。对于启用监视器的调试,仅当当前优先级高于监视器时,执行 BKPT 指令时才会发生该故障。当暂停调试和监视器调试都被禁用时,仅当调试事件未被忽略时,才会发生该故障(至少包含 BKPT 指令)。调试故障状态寄存器会被更新。
30FORCEDR/W1C0h硬故障激活是因为接收到可配置故障,而无法激活是由于优先级原因或因为可配置故障被禁用。然后,硬故障处理程序必须读取其他故障状态寄存器以确定原因。
29-2RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
1VECTTBLR/W1C0h如果由于异常处理时读取的矢量表而导致故障(总线故障),则设置该位。这种情况下,故障始终是硬故障。返回 PC 指向被抢占的指令。
0RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.39 DFSR 寄存器(偏移 = D30h)[复位 = 00000000h]

图 3-110 展示了 DFSR,表 3-146 中对此进行了介绍。

返回到汇总表

调试故障状态
该寄存器用于监视外部调试请求、矢量捕获、数据观察点匹配、BKPT 指令执行和暂停请求。当发生多种故障情况时,可以在调试故障状态寄存器中设置多个标志。该寄存器为读/写清型寄存器。这意味着它可以正常读取,而向某个位写入 1 则会清除该位。请注意,除非捕获到事件,否则不会设置这些位。这意味着它会导致某种停止。如果启用了暂停调试,这些事件会使处理器停止并进入调试状态。如果禁用了调试并启用了调试监视器,则在优先级允许的情况下,这将成为调试监视器处理程序调用。如果调试和监视器都被禁用,则其中一些事件为硬故障,而另一些事件将被忽略。

图 3-110 DFSR 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVED外部VCATCHDWTTRAPBKPTHALTED
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-146 DFSR 寄存器字段说明
字段类型复位说明
31-5RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
4外部R/W0h外部调试请求标志。处理器在下一指令边界处停止。
0x0:外部调试请求信号未置为有效
0x1:外部调试请求信号置为有效
3VCATCHR/W0h矢量捕获标志。设置该标志时,也会设置本地故障状态寄存器中的一个标志,以指示故障类型。
0x0:未发生矢量捕获
0x1:发生了矢量捕获
2DWTTRAPR/W0h数据观察点和跟踪 (DWT) 标志。处理器在当前指令或下一条指令处停止。
0x0:无 DWT 匹配
0x1:有 DWT 匹配
1BKPTR/W0hBKPT 标志。BKPT 标志由闪存补丁代码中的 BKPT 指令以及普通代码设置。返回 PC 指向包含断点的指令。
0x0:无 BKPT 指令执行
0x1:有 BKPT 指令执行
0HALTEDR/W0h暂停请求标志。处理器在下一条指令处暂停。
0x0:无暂停请求
0x1:NVIC 请求暂停,包括步骤

3.9.4.40 MMFAR 寄存器(偏移 = D34h)[复位 = 00000000h]

图 3-111 展示了 MMFAR,表 3-147 中对此进行了介绍。

返回到汇总表

存储器管理故障地址
该寄存器用于读取导致存储器管理故障的位置的地址。

图 3-111 MMFAR 寄存器
313029282726252423222120191817161514131211109876543210
地址
R/W-X
表 3-147 MMFAR 寄存器字段说明
字段类型复位说明
31-0地址R/WX存储器管理故障地址字段。
该字段是故障加载或存储尝试的数据地址。发生非对齐访问故障时,地址是出现故障的实际地址。由于访问可以拆分为多个单独对齐的部分,因此该地址可以是请求大小范围内的任何偏移。标记 CFSR.IACCVIOL、CFSR.DACCVIOL、CFSR.MUNSTKERR 和 CFSR.MSTKERR 与 CFSR.MMARVALID 一起指示故障原因。

3.9.4.41 BFAR 寄存器(偏移 = D38h)[复位 = 00000000h]

图 3-112 展示了 BFAR,表 3-148 中对此进行了介绍。

返回到汇总表

总线故障地址
该寄存器用于读取生成总线故障的位置的地址。

图 3-112 BFAR 寄存器
313029282726252423222120191817161514131211109876543210
地址
R/W-X
表 3-148 BFAR 寄存器字段说明
字段类型复位说明
31-0地址R/WX总线故障地址字段。该字段是故障加载或存储尝试的数据地址。发生非对齐访问故障时,地址是指令请求的地址,即使该地址不是出现故障的地址。
标记 CFSR.IBUSERR、CFSR.PRECISERR、CFSR.IMPRECISERR、CFSR.UNSTKERR 和 CFSR.STKERR 与 CFSR.BFARVALID 一起指示故障原因。

3.9.4.42 AFSR 寄存器(偏移 = D3Ch)[复位 = 00000000h]

图 3-113 展示了 AFSR,表 3-149 中对此进行了介绍。

返回到汇总表

辅助故障状态
该寄存器用于确定向软件提供的其他系统故障信息。辅助故障上的单周期高电平信号锁存为 1。只能通过向相应位写入 1 来清除该位。CPU 的辅助故障输入连接到 0。

图 3-113 AFSR 寄存器
313029282726252423222120191817161514131211109876543210
IMPDEF
R/W-0h
表 3-149 AFSR 寄存器字段说明
字段类型复位说明
31-0IMPDEFR/W0h实现定义。这些位直接映射到辅助故障输入的信号分配。连接到 0

3.9.4.43 ID_PFR0 寄存器(偏移 = D40h)[复位 = 00000030h]

图 3-114 展示了 ID_PFR0,表 3-150 对其进行了介绍。

返回到汇总表

处理器功能 0

图 3-114 ID_PFR0 寄存器
31302928272625242322212019181716
RESERVED
R-0h
1514131211109876543210
RESERVEDSTATE1STATE0
R-0hR-3hR-0h
表 3-150 ID_PFR0 寄存器字段说明
字段类型复位说明
31-8RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
7-4STATE1R3hState1(T 位 = 1)
0x0:不适用
0x1:不适用
0x2:Thumb-2 编码,包含 16 位基本指令加 32 位 Buncond/BL,但不包含其他 32 位基本指令(请注意,可以使用适当的指令属性添加 32 位非基本指令,但不能添加其他 32 位基本指令。)
0x3:Thumb-2 编码,包含所有 Thumb-2 基本指令
3-0STATE0R0hState0(T 位 = 0)
0x0:无 ARM 编码
0x1:不适用

3.9.4.44 ID_PFR1 寄存器(偏移 = D44h)[复位 = 00000200h]

图 3-115 展示了 ID_PFR1,表 3-151 对其进行了介绍。

返回到汇总表

处理器功能 1

图 3-115 ID_PFR1 寄存器
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVED
R-0h
15141312111098
RESERVEDMICROCONTROLLER_PROGRAMMERS_MODEL
R-0hR-2h
76543210
RESERVED
R-0h
表 3-151 ID_PFR1 寄存器字段说明
字段类型复位说明
31-12RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
11-8MICROCONTROLLER_PROGRAMMERS_MODELR2h微控制器编程模型
0x0:不支持
0x2:双栈支持
7-0RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.45 ID_DFR0 寄存器(偏移 = D48h)[复位 = 00100000h]

图 3-116 展示了 ID_DFR0,表 3-152 对其进行了介绍。

返回到汇总表

调试功能 0
该寄存器提供调试系统的概要视图。调试架构本身可提供更多详细信息。

图 3-116 ID_DFR0 寄存器
3130292827262524
RESERVED
R-0h
2322212019181716
MICROCONTROLLER_DEBUG_MODELRESERVED
R-1hR-0h
15141312111098
RESERVED
R-0h
76543210
RESERVED
R-0h
表 3-152 ID_DFR0 寄存器字段说明
字段类型复位说明
31-24RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
23-20MICROCONTROLLER_DEBUG_MODELR1h微控制器调试模型 - 存储器映射
0x0:不支持
0x1:微控制器调试 v1(ITMv1 和 DWTv1)
19-0RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.46 ID_AFR0 寄存器(偏移 = D4Ch)[复位 = 00000000h]

图 3-117 展示了 ID_AFR0,表 3-153 对其进行了介绍。

返回到汇总表

辅助功能 0
该寄存器为实现定义的功能提供了一定的自由度,以便对其进行注册。Cortex-M 中未使用。

图 3-117 ID_AFR0 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-0h
表 3-153 ID_AFR0 寄存器字段说明
字段类型复位说明
31-0RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.47 ID_MMFR0 寄存器(偏移 = D50h)[复位 = 00100030h]

图 3-118 展示了 ID_MMFR0,表 3-154 对其进行了介绍。

返回到汇总表

存储器模型功能 0
关于存储器模型和存储器管理支持的一般信息。

图 3-118 ID_MMFR0 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-00100030h
表 3-154 ID_MMFR0 寄存器字段说明
字段类型复位说明
31-0RESERVEDR00100030h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.48 ID_MMFR1 寄存器(偏移 = D54h)[复位 = 00000000h]

图 3-119 展示了 ID_MMFR1,表 3-155 对其进行了介绍。

返回到汇总表

存储器模型功能 1
关于存储器模型和存储器管理支持的一般信息。

图 3-119 ID_MMFR1 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-0h
表 3-155 ID_MMFR1 寄存器字段说明
字段类型复位说明
31-0RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.49 ID_MMFR2 寄存器(偏移 = D58h)[复位 = 01000000h]

图 3-120 展示了 ID_MMFR2,表 3-156 对其进行了介绍。

返回到汇总表

存储器模型功能 2
关于存储器模型和存储器管理支持的一般信息。

图 3-120 ID_MMFR2 寄存器
3130292827262524
RESERVEDWAIT_FOR_INTERRUPT_STALLING
R-0hR-1h
2322212019181716
RESERVED
R-0h
15141312111098
RESERVED
R-0h
76543210
RESERVED
R-0h
表 3-156 ID_MMFR2 寄存器字段说明
字段类型复位说明
31-25RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
24WAIT_FOR_INTERRUPT_STALLINGR1h等待中断停滞
0x0:不支持
0x1:支持等待中断
23-0RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.50 ID_MMFR3 寄存器(偏移 = D5Ch)[复位 = 00000000h]

图 3-121 展示了 ID_MMFR3,表 3-157 对其进行了介绍。

返回到汇总表

存储器模型功能 3
关于存储器模型和存储器管理支持的一般信息。

图 3-121 ID_MMFR3 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-0h
表 3-157 ID_MMFR3 寄存器字段说明
字段类型复位说明
31-0RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.51 ID_ISAR0 寄存器(偏移 = D60h)[复位 = 01101110h]

图 3-122 展示了 ID_ISAR0,表 3-158 对其进行了介绍。

返回到汇总表

ISA 功能 0
有关指令集属性寄存器的信息

图 3-122 ID_ISAR0 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-01101110h
表 3-158 ID_ISAR0 寄存器字段说明
字段类型复位说明
31-0RESERVEDR01101110h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.52 ID_ISAR1 寄存器(偏移 = D64h)[复位 = 02112000h]

图 3-123 展示了 ID_ISAR1,表 3-159 对其进行了介绍。

返回到汇总表

ISA 功能 1
有关指令集属性寄存器的信息

图 3-123 ID_ISAR1 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-02112000h
表 3-159 ID_ISAR1 寄存器字段说明
字段类型复位说明
31-0RESERVEDR02112000h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.53 ID_ISAR2 寄存器(偏移 = D68h)[复位 = 21232231h]

图 3-124 展示了 ID_ISAR2,表 3-160 对其进行了介绍。

返回到汇总表

ISA 功能 2
有关指令集属性寄存器的信息

图 3-124 ID_ISAR2 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-21232231h
表 3-160 ID_ISAR2 寄存器字段说明
字段类型复位说明
31-0RESERVEDR21232231h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.54 ID_ISAR3 寄存器(偏移 = D6Ch)[复位 = 01111131h]

图 3-125 展示了 ID_ISAR3,表 3-161 对其进行了介绍。

返回到汇总表

ISA 功能 3
有关指令集属性寄存器的信息

图 3-125 ID_ISAR3 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-01111131h
表 3-161 ID_ISAR3 寄存器字段说明
字段类型复位说明
31-0RESERVEDR01111131h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.55 ID_ISAR4 寄存器(偏移 = D70h)[复位 = 01310132h]

图 3-126 展示了 ID_ISAR4,表 3-162 对其进行了介绍。

返回到汇总表

ISA 功能 4
有关指令集属性寄存器的信息

图 3-126 ID_ISAR4 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R-01310132h
表 3-162 ID_ISAR4 寄存器字段说明
字段类型复位说明
31-0RESERVEDR01310132h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.56 CPACR 寄存器(偏移 = D88h)[复位 = 00000000h]

图 3-127 展示了 CPACR,表 3-163 中对此进行了介绍。

返回到汇总表

协处理器访问控制
该寄存器指定协处理器的访问权限。

图 3-127 CPACR 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED
R/W-0h
表 3-163 CPACR 寄存器字段说明
字段类型复位说明
31-0RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.57 MPU_TYPE 寄存器(偏移 = D90h)[复位 = 00000800h]

图 3-128 展示了 MPU_TYPE,表 3-164 中对此进行了介绍。

返回到汇总表

MPU 类型
该寄存器指示 MPU 支持的多个区域。

图 3-128 MPU_TYPE 寄存器
3130292827262524
RESERVED
R-0h
2322212019181716
IREGION
R-0h
15141312111098
DREGION
R-8h
76543210
RESERVEDSEPARATE
R-0hR-0h
表 3-164 MPU_TYPE 寄存器字段说明
字段类型复位说明
31-24RESERVEDR0h读为 0。
23-16IREGIONR0h处理器内核仅使用统一的 MPU,该字段的读值始终为 0x0。
15-8DREGIONR8h受支持 MPU 区域的数量字段。该字段读值为 0x08,表示八个 MPU 区域。
7-1RESERVEDR0h读为 0。
0SEPARATER0h处理器内核仅使用统一的 MPU,因此该字段始终为 0。

3.9.4.58 MPU_CTRL 寄存器(偏移 = D94h)[复位 = 00000000h]

图 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。

图 3-129 MPU_CTRL 寄存器
3130292827262524
RESERVED
R/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVED
R/W-0h
76543210
RESERVEDPRIVDEFENAHFNMIENAENABLE
R/W-0hR/W-0hR/W-0hR/W-0h
表 3-165 MPU_CTRL 寄存器字段说明
字段类型复位说明
31-3RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
2PRIVDEFENAR/W0h当 MPU 启用时,该位启用默认存储器映射作为背景区域,用于特权访问。背景区域的作用相当于任何可设置区域之前的 1 号区域。配置的任何区域都会覆盖该默认映射,并覆写该映射。如果未设置该位,则禁用默认存储器映射,并且未被区域覆盖的存储器会发生故障。这适用于存储器类型、从不执行 (XN)、缓存和可共享规则。但是,这仅适用于特权模式(获取和数据访问)。除非已为其代码和数据配置区域,否则用户模式代码会导致故障。MPU 禁用时,默认映射同时作用于特权模式和用户模式代码。无论是否设置了此使能,XN 和 SO 规则始终应用于系统分区。如果 MPU 禁用,则忽略该位。
1HFNMIENAR/W0h在处于硬故障、NMI 和 FAULTMASK 升级处理程序中时,该位会启用 MPU。如果设置了该位和 ENABLE 位,则在这些处理程序中 MPU 会被启用。如果未设置该位,则无论 ENABLE 位的值如何,在这些处理程序中都会禁用 MPU。如果设置了该位且未设置 ENABLE 位,则行为不可预测。
0ENABLER/W0h使能 MPU
0:禁用 MPU
1:MPU 启用

3.9.4.59 MPU_RNR 寄存器(偏移 = D98h)[复位 = 00000000h]

图 3-130 展示了 MPU_RNR,表 3-166 中对此进行了介绍。

返回到汇总表

MPU 区域编号
该寄存器用于选择访问哪个保护区域。对 MPU_RASR 或 MPU_RBAR 的以下写入会配置该寄存器选择的保护区域的特性。

图 3-130 MPU_RNR 寄存器
313029282726252423222120191817161514131211109876543210
RESERVED区域
R/W-0hR/W-0h
表 3-166 MPU_RNR 寄存器字段说明
字段类型复位说明
31-8RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
7-0区域R/W0h区域选择字段。
使用 MPU_RASR 和 MPU_RBAR 时,该字段选择要在其上运行的区域。必须首先写入该位,除非同时写入地址 MPU_RBAR.VALID 和 MPU_RBAR.REGION 字段,此时会覆盖该位。

3.9.4.60 MPU_RBAR 寄存器(偏移 = D9Ch)[复位 = 00000000h]

图 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 的简短方法。如果不是作为字访问,则该寄存器的行为不可预测。

图 3-131 MPU_RBAR 寄存器
3130292827262524
ADDR
R/W-0h
2322212019181716
ADDR
R/W-0h
15141312111098
ADDR
R/W-0h
76543210
ADDR有效区域
R/W-0hR/W-0hR/W-0h
表 3-167 MPU_RBAR 寄存器字段说明
字段类型复位说明
31-5ADDRR/W0h区域基地址字段。
LSB 的位置取决于区域大小,因此基地址会根据大小的偶数倍对齐。MPU 区域属性和大小寄存器中 SZENABLE 字段指定的 2 的幂次大小决定了基地址中有多少位被使用。
4有效R/W0hMPU 区域编号有效位:
0:MPU_RNR 保持不变并被解释。
1:MPU_RNR 被 REGION 覆写。
3-0区域R/W0hMPU 区域覆写字段

3.9.4.61 MPU_RASR 寄存器(偏移 = DA0h)[复位 = 00000000h]

图 3-132 展示了 MPU_RASR,表 3-168 中对此进行了介绍。

返回到汇总表

MPU 区域属性和大小
该寄存器控制 MPU 访问权限。该寄存器由两子寄存器组成,每个寄存器具有半字大小。可以使用半字大小来访问这些寄存器,也可以使用字操作同时访问这两个寄存器。32 字节、64 字节和 128 字节区域大小不支持子区域禁用位。使用这些区域大小时,子区域禁用位必须编程为 0。

图 3-132 MPU_RASR 寄存器
3130292827262524
RESERVEDXNRESERVEDAP
R/W-0hR/W-0hR/W-0hR/W-0h
2322212019181716
RESERVEDTEXSCB
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
SRD
R/W-0h
76543210
RESERVED尺寸ENABLE
R/W-0hR/W-0hR/W-0h
表 3-168 MPU_RASR 寄存器字段说明
字段类型复位说明
31-29RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
28XNR/W0h指令访问禁用:
0:启用指令获取
1:禁用指令获取
27RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
26-24APR/W0h数据访问权限:
0x0:特权权限:无访问。用户权限:无访问。
0x1:特权权限:读-写。用户权限:无访问。
0x2:特权权限:读-写。用户权限:只读。
0x3:特权权限:读-写。用户权限:读-写
0x4:保留
0x5:特权权限:只读。用户权限:无访问。
0x6:特权权限:只读。用户权限:只读。
0x7:特权权限:只读。用户权限:只读。
23-22RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
21-19TEXR/W0h类型扩展
18SR/W0h可共享位:
0:不可共享
1:可共享
17CR/W0h可缓存位:
0:不可缓存
1:可缓存
16BR/W0h可缓冲位:
0:不可缓冲
1:可缓冲
15-8SRDR/W0h子区域禁用字段:
设置该字段中的某个位会禁用相应的子区域。区域分为八个大小相同的子区域。128 字节及以下区域大小不支持子区域。
7-6RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5-1尺寸R/W0hMPU 保护区域大小字段:
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
0ENABLER/W0h区域使能位:
0:禁用区域
1:启用区域

3.9.4.62 MPU_RBAR_A1 寄存器(偏移 = DA4h)[复位 = 00000000h]

图 3-133 展示了 MPU_RBAR_A1,表 3-169 对其进行了介绍。

返回到汇总表

MPU 别名 1 区域基地址
MPU_RBAR 的别名

图 3-133 MPU_RBAR_A1 寄存器
313029282726252423222120191817161514131211109876543210
MPU_RBAR_A1
R/W-0h
表 3-169 MPU_RBAR_A1 寄存器字段说明
字段类型复位说明
31-0MPU_RBAR_A1R/W0hMPU_RBAR 的别名

3.9.4.63 MPU_RASR_A1 寄存器(偏移 = DA8h)[复位 = 00000000h]

图 3-134 展示了 MPU_RASR_A1,表 3-170 对其进行了介绍。

返回到汇总表

MPU 别名 1 区域属性和大小
MPU_RASR 的别名

图 3-134 MPU_RASR_A1 寄存器
313029282726252423222120191817161514131211109876543210
MPU_RASR_A1
R/W-0h
表 3-170 MPU_RASR_A1 寄存器字段说明
字段类型复位说明
31-0MPU_RASR_A1R/W0hMPU_RASR 的别名

3.9.4.64 MPU_RBAR_A2 寄存器(偏移 = DACh)[复位 = 00000000h]

图 3-135 展示了 MPU_RBAR_A2,表 3-171 中对此进行了介绍。

返回到汇总表

MPU 别名 2 区域基地址
MPU_RBAR 的别名

图 3-135 MPU_RBAR_A2 寄存器
313029282726252423222120191817161514131211109876543210
MPU_RBAR_A2
R/W-0h
表 3-171 MPU_RBAR_A2 寄存器字段说明
字段类型复位说明
31-0MPU_RBAR_A2R/W0hMPU_RBAR 的别名

3.9.4.65 MPU_RASR_A2 寄存器(偏移 = DB0h)[复位 = 00000000h]

图 3-136 展示了 MPU_RASR_A2,表 3-172 对其进行了介绍。

返回到汇总表

MPU 别名 2 区域属性和大小
MPU_RASR 的别名

图 3-136 MPU_RASR_A2 寄存器
313029282726252423222120191817161514131211109876543210
MPU_RASR_A2
R/W-0h
表 3-172 MPU_RASR_A2 寄存器字段说明
字段类型复位说明
31-0MPU_RASR_A2R/W0hMPU_RASR 的别名

3.9.4.66 MPU_RBAR_A3 寄存器(偏移 = DB4h)[复位 = 00000000h]

图 3-137 展示了 MPU_RBAR_A3,表 3-173 对其进行了介绍。

返回到汇总表

MPU 别名 3 区域基地址
MPU_RBAR 的别名

图 3-137 MPU_RBAR_A3 寄存器
313029282726252423222120191817161514131211109876543210
MPU_RBAR_A3
R/W-0h
表 3-173 MPU_RBAR_A3 寄存器字段说明
字段类型复位说明
31-0MPU_RBAR_A3R/W0hMPU_RBAR 的别名

3.9.4.67 MPU_RASR_A3 寄存器(偏移 = DB8h)[复位 = 00000000h]

图 3-138 展示了 MPU_RASR_A3,表 3-174 对其进行了介绍。

返回到汇总表

MPU 别名 3 区域属性和大小
MPU_RASR 的别名

图 3-138 MPU_RASR_A3 寄存器
313029282726252423222120191817161514131211109876543210
MPU_RASR_A3
R/W-0h
表 3-174 MPU_RASR_A3 寄存器字段说明
字段类型复位说明
31-0MPU_RASR_A3R/W0hMPU_RASR 的别名

3.9.4.68 DHCSR 寄存器(偏移 = DF0h)[复位 = 00000000h]

图 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 保持调试状态

图 3-139 DHCSR 寄存器
3130292827262524
RESERVEDS_RESET_STS_RETIRE_ST
R/W-0hR/W-0hR/W-0h
2322212019181716
RESERVEDS_LOCKUPS_SLEEPS_HALTS_REGRDY
R/W-0hR/W-0hR/W-0hR/W-0hR/W-X
15141312111098
RESERVED
R-0h
76543210
RESERVEDC_SNAPSTALLRESERVEDC_MASKINTSC_STEPC_HALTC_DEBUGEN
R-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-175 DHCSR 寄存器字段说明
字段类型复位说明
31-26RESERVEDR/W0h软件不应依赖保留位的值。
写入该寄存器时,必须向该位字段写入 0x28,否则写操作将被忽略,并且不会向寄存器写入任何位。
25S_RESET_STR/W0h表示自上次读取该位以来内核已复位或现在正在复位。这是一个粘滞位,将在读取后清除。因此,读取两次并先变为 1 后变为 0 表示它已被复位。读取两次并两次变为 1 表示现在正在复位(仍保持在复位状态)。
写入该寄存器时,必须向该位字段写入 0,否则写操作将被忽略,并且不会向寄存器写入任何位。
24S_RETIRE_STR/W0h表示自上次读取后有一条指令已完成。这是一个粘滞位,将在读取后清除。可以用于确定内核是在加载/存储还是获取时停滞。
写入该寄存器时,必须向该位字段写入 0,否则写操作将被忽略,并且不会向寄存器写入任何位。
23-20RESERVEDR/W0h软件不应依赖保留位的值。
写入该寄存器时,必须向该位字段写入 0x5,否则写操作将被忽略,并且不会向寄存器写入任何位。
19S_LOCKUPR/W0h如果内核正在运行(未暂停)并且存在锁定条件,则读为 1。
写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。
18S_SLEEPR/W0h表示内核正处于睡眠状态(WFI、WFE 或 **SLEEP-ON-EXIT**)。必须使用 C_HALT 来获得控制或等待中断唤醒。
写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。
17S_HALTR/W0h设置该位时,内核处于调试状态。
写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。
16S_REGRDYR/WX调试内核寄存器选择器寄存器上的寄存器读/写操作可用。上次传输已完成。
写入该寄存器时,必须向该位字段写入 1,否则写操作将被忽略,并且不会向寄存器写入任何位。
15-6RESERVEDR0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
5C_SNAPSTALLR/W0h如果内核在加载/存储操作时停滞,则停滞结束,并且指令会被强制完成。这会使能暂停调试,以获得对内核的控制。只能在以下情况下设置:C_DEBUGEN = 1 且 C_HALT = 1。内核将 S_RETIRE_ST 读为 0。这表示没有指令推进,可以防止误用。使用该位时,总线状态不可预测。S_RETIRE_ST 可检测加载/存储操作中的内核停滞。
4RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
3C_MASKINTSR/W0h在逐步执行时或暂停调试模式下屏蔽中断。该屏蔽不会影响由指令执行引起的 NMI、故障异常和 SVC。仅当处理器处于暂停状态 (S_HALT = 1) 时,才能修改该位。在解除暂停之前,必须设置或清除 C_MASKINTS(即,设置或清除 C_MASKINTS 以及设置或清除 C_HALT 的写操作必须分开进行)。在系统运行且启用了暂停调试支持(C_DEBUGEN = 1、S_HALT = 0)时修改 C_MASKINTS 可能会导致不可预测的行为。
2C_STEPR/W0h在暂停调试模式下逐步执行内核。在 C_DEBUGEN = 0 时,该位无影响。只能在处理器处于暂停状态 (S_HALT = 1) 时修改。
在系统运行且启用了暂停调试支持(C_DEBUGEN = 1、S_HALT = 0)时修改 C_STEP 可能会导致不可预测的行为。
1C_HALTR/W0h暂停内核。当内核暂停时,会自动设置该位。例如断点。该位会在内核复位时清除。
0C_DEBUGENR/W0h使能调试。该位只能由 AHB-AP 写入,而不能由内核写入。由内核写入时无法设置或清除,因此会被忽略。写入 C_HALT 以使自身暂停时,内核必须向该位写入 1。
C_DEBUGEN = 0 时,C_HALT、C_STEP 和 C_MASKINTS 的值会被硬件忽略。C_DEBUGEN = 0 时,C_HALT、C_STEP 和 C_MASKINTS 字段的读取值对于软件来说是未知的。

3.9.4.69 DCRSR 寄存器(偏移 = DF4h)[复位 = 00000000h]

图 3-140 展示了 DCRSR,表 3-176 中对此进行了介绍。

返回到汇总表

调试内核寄存器选择器
该寄存器的用途是选择要与其进行数据传输的处理器寄存器。该只写寄存器会生成与内核的握手,以便与调试内核寄存器数据寄存器和所选寄存器进行数据传输。在该内核事务完成之前,DHCSR.S_REGRDY 为 0。请注意,对该寄存器进行非字大小写操作会产生不可预测的结果。
请注意,通过这种方式可以完全访问 PSR 寄存器,而在使用 MRS 指令时某些寄存器会读为 0。请注意,所有位都可写入,但在恢复执行时,某些组合会导致故障。

图 3-140 DCRSR 寄存器
3130292827262524
RESERVED
W-X
2322212019181716
RESERVEDREGWNR
W-XW-X
15141312111098
RESERVED
W-X
76543210
RESERVEDREGSEL
W-XW-X
表 3-176 DCRSR 寄存器字段说明
字段类型复位说明
31-17RESERVEDWX软件不应依赖保留位的值。写入 0。
16REGWNRWX1:写入
0:读取
15-5RESERVEDWX软件不应依赖保留位的值。写入 0。
4-0REGSELWX寄存器选择
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.9.4.70 DCRDR 寄存器(偏移 = DF8h)[复位 = 00000000h]

图 3-141 展示了 DCRDR,表 3-177 中对此进行了介绍。

返回到汇总表

调试内核寄存器数据

图 3-141 DCRDR 寄存器
313029282726252423222120191817161514131211109876543210
DCRDR
R/W-X
表 3-177 DCRDR 寄存器字段说明
字段类型复位说明
31-0DCRDRR/WX该寄存器保存与处理器之间进行寄存器读写操作的数据。这是写入 DCRSR 所选寄存器的数据值。当处理器接收到来自 DCRSR 的请求时,处理器会使用正常的负载存储单元操作读取或写入该寄存器。如果未执行内核寄存器传输,则基于软件的调试监视器可以使用该寄存器在非暂停调试中进行通信。这使得标志和位能够确认状态,并指示命令是否已被接收、已被回复,或已被接收并回复。

3.9.4.71 DEMCR 寄存器(偏移 = DFCh)[复位 = 00000000h]

图 3-142 展示了 DEMCR,表 3-178 中对此进行了介绍。

返回到汇总表

调试异常和监视器控制
该寄存器的用途是矢量捕获和调试监视器控制。该寄存器在调试时管理异常行为。矢量捕获仅可用于暂停调试。高半字用于监视器控制,低半字用于暂停异常支持。该寄存器不会在系统复位时复位,而是通过上电复位操作复位。在内核复位时,始终清除字段 MON_EN、MON_PEND、MON_STEP 和 MON_REQ。调试监视器由软件在复位处理程序中或之后启用,或通过 **AHB-AP** 端口启用。矢量捕获是半同步的。检测到匹配的事件时,会请求暂停。由于处理器只能在指令边界处暂停,因此必须等到下一个指令边界。因此,它会在异常处理程序的第一条指令处停止。但是,触发矢量捕获后,存在两种特殊情况:1.如果在矢量读取或堆栈推送错误期间出现故障,则暂停发生在矢量错误或栈推送的相应故障处理程序上。2.如果在矢量读取或堆栈推送错误期间检测到延迟到达的中断,则不会响应该中断。也就是说,在这种情况下,支持延迟到达优化的实现方案必须抑制该中断。

图 3-142 DEMCR 寄存器
3130292827262524
RESERVEDTRCENA
R/W-0hR/W-0h
2322212019181716
RESERVEDMON_REQMON_STEPMON_PENDMON_EN
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
15141312111098
RESERVEDVC_HARDERRVC_INTERRVC_BUSERR
R/W-0hR/W-0hR/W-0hR/W-0h
76543210
VC_STATERRVC_CHKERRVC_NOCPERRVC_MMERRRESERVEDVC_CORERESET
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-178 DEMCR 寄存器字段说明
字段类型复位说明
31-25RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
24TRCENAR/W0h该位必须设置为 1 才能启用跟踪和调试块:DWT、ITM、ETM 和 TPIU。除非需要跟踪,否则该位使能对电源使用情况的控制。应用中可以启用该位,用于 ITM 或由调试器使用。
23-20RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
19MON_REQR/W0h该位使能监视器,以识别唤醒方式。内核复位时会清除该位。
0x0:由调试异常唤醒。
0x1:由 MON_PEND 唤醒
18MON_STEPR/W0hMON_EN = 1 时,逐步执行内核。MON_EN = 0 时,忽略该位。
该位与 DHCSR.C_STEP 等效。中断仅根据监视器的优先级以及 PRIMASK、FAULTMASK 或 BASEPRI 的设置来逐步执行。
17MON_PENDR/W0h挂起监视器,待优先级允许时再激活。可以通过 AHB-AP 端口唤醒监视器。该位等效于用于监视器调试的 DHCSR.C_HALT。该寄存器不会在系统复位时复位,而只能通过上电复位操作复位。调试监视器必须由软件在复位处理程序中或之后启用,或由 DAP 启用。
16MON_ENR/W0h使能调试监视器。
启用后,系统处理程序优先级寄存器控制其优先级。如果禁用,则所有调试事件都进入硬故障状态。DHCSR.C_DEBUGEN 覆写该位。矢量捕获是半同步的。检测到匹配的事件时,会请求暂停。由于处理器只能在指令边界处暂停,因此必须等到下一个指令边界。因此,它会在异常处理程序的第一条指令处停止。但是,触发矢量捕获后,存在两种特殊情况:1.如果在矢量查找、矢量读取或堆栈推送错误期间发生故障,则会在相应的故障处理程序上针对矢量错误或堆栈推送发生暂停。2.如果在矢量查找过程中出现延迟到达的中断,则不会响应该中断。也就是说,在这种情况下,支持延迟到达优化的实现方案必须抑制该中断。
15-11RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
10VC_HARDERRR/W0h硬故障时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
9VC_INTERRR/W0h异常进入或返回序列期间发生故障时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
8VC_BUSERRR/W0h正常总线错误时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
7VC_STATERRR/W0h使用故障状态错误时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
6VC_CHKERRR/W0h使用故障启用检查错误时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
5VC_NOCPERRR/W0h对协处理器进行使用故障访问时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
4VC_MMERRR/W0h存储器管理故障时的调试陷阱。DHCSR.C_DEBUGEN 被清除时忽略。
3-1RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
0VC_CORERESETR/W0h重置矢量捕捉。如果发生内核复位,则暂停正在运行的系统。DHCSR.C_DEBUGEN 被清除时忽略。

3.9.4.72 STIR 寄存器(偏移 = F00h)[复位 = 00000000h]

图 3-143 展示了 STIR,表 3-179 中对此进行了介绍。

返回到汇总表

软件触发中断

图 3-143 STIR 寄存器
313029282726252423222120191817161514131211109876543210
RESERVEDINTID
W-0hW-X
表 3-179 STIR 寄存器字段说明
字段类型复位说明
31-9RESERVEDW0h软件不应依赖保留位的值。写入 0。
8-0INTIDWX中断 ID 字段。向该位字段写入值,等同于通过在 NVIC_ISPR0 或 NVIC_ISPR1 中的中断设置挂起寄存器中设置相应的中断位来手动挂起中断。

3.9.4.73 FPCCR 寄存器(偏移 = F34h)[复位 = C0000000h]

图 3-144 展示了 FPCCR,表 3-180 中对此进行了介绍。

返回到汇总表

浮点上下文控制
该寄存器保存用于浮点单元的控制数据。只能由特权软件访问。

图 3-144 FPCCR 寄存器
3130292827262524
ASPENLSPENRESERVED
R/W-1hR/W-1hR/W-0h
2322212019181716
RESERVED
R/W-0h
15141312111098
RESERVEDMONRDY
R/W-0hR/W-0h
76543210
RESERVEDBFRDYMMRDYHFRDYTHREADRESERVEDUSERLSPACT
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
表 3-180 FPCCR 寄存器字段说明
字段类型复位说明
31ASPENR/W1h自动状态保留使能。
设置该位将导致在执行浮点指令时设置特殊控制寄存器 (FPCA) 的位 [2],从而导致在异常进入时自动保留浮点状态。
30LSPENR/W1h惰性状态保留使能。
惰性状态保留是指处理器执行上下文保存时,保留堆栈上的空间用于浮点状态,但直到新的上下文执行浮点运算后才会压栈。
0:禁用浮点上下文的自动惰性状态保留。
1:启用浮点上下文的自动惰性状态保留。
29-9RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
8MONRDYR/W0h指示在处理器分配了浮点栈帧时,执行的软件是否能够将调试监视器异常设置为挂起。
0:分配了浮点栈帧时,调试监视器禁用或优先级不允许设置 DEMCR.MON_PEND。
1:分配了浮点栈帧时,调试监视器启用且优先级允许设置 DEMCR.MON_PEND。
7RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
6BFRDYR/W0h指示在处理器分配了浮点栈帧时,执行的软件是否能够将总线故障异常设置为挂起。
0:分配了浮点栈帧时,总线故障禁用或优先级不允许将总线故障处理程序设置为挂起状态。
1:分配了浮点栈帧时,总线故障启用且优先级允许将总线故障处理程序设置为挂起状态。
5MMRDYR/W0h指示在处理器分配了浮点栈帧时,执行的软件是否能够将存储器管理异常设置为挂起。
0:分配了浮点栈帧时,存储器管理禁用或优先级不允许将存储器管理处理程序设置为挂起状态。
1: 分配了浮点栈帧时,存储器管理启用且优先级允许将存储器管理处理程序设置为挂起状态。
4HFRDYR/W0h指示在处理器分配了浮点栈帧时,执行的软件是否能够将硬故障异常设置为挂起。
0:分配了浮点栈帧时,优先级不允许将硬故障处理程序设置为挂起状态。
1: 分配了浮点栈帧时,优先级允许将硬故障处理程序设置为挂起状态。
3THREADR/W0h指示分配了浮点栈帧时的处理器模式为线程模式。
0:分配了浮点栈帧时,模式不是线程模式。
1:分配了浮点栈帧时,模式是线程模式。
2RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
1USERR/W0h指示在处理器分配了浮点栈帧时,执行软件的权限级别为用户(非特权):
0:分配了浮点栈帧时,权限级别不是用户。
1:分配了浮点栈帧时,权限级别是用户。
0LSPACTR/W0h指示浮点的惰性状态保留是否处于活动状态:
0:惰性状态保留处于非活动状态。
1:惰性状态保留处于活动状态。浮点栈帧已分配,但其保存状态已延迟。

3.9.4.74 FPCAR 寄存器(偏移 = F38h)[复位 = 00000000h]

图 3-145 展示了 FPCAR,表 3-181 中对此进行了介绍。

返回到汇总表

浮点上下文地址
该寄存器保存在异常栈帧上分配的未填充浮点寄存器空间的位置。

图 3-145 FPCAR 寄存器
3130292827262524
地址
R/W-0h
2322212019181716
地址
R/W-0h
15141312111098
地址
R/W-0h
76543210
地址RESERVED
R/W-0hR/W-0h
表 3-181 FPCAR 寄存器字段说明
字段类型复位说明
31-2地址R/W0h保存在异常栈帧上分配的未填充浮点寄存器空间的(双字对齐)位置。
1-0RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.75 FPDSCR 寄存器(偏移 = F3Ch)[复位 = 00000000h]

图 3-146 展示了 FPDSCR,表 3-182 中对此进行了介绍。

返回到汇总表

浮点默认状态控制
该寄存器保存浮点状态控制数据的默认值,该数据是处理器在创建新的浮点上下文时分配给 FPSCR 的。只能由特权软件访问。

图 3-146 FPDSCR 寄存器
31302928272625242322212019181716
RESERVEDAHPDNFZRMODERESERVED
R/W-0hR/W-0hR/W-0hR/W-0hR/W-0hR/W-0h
1514131211109876543210
RESERVED
R/W-0h
表 3-182 FPDSCR 寄存器字段说明
字段类型复位说明
31-27RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。
26AHPR/W0h备用半精度位的默认值。(如果该位设置为 1,则选择备用半精度格式)。
25DNR/W0h默认 NaN 模式位的默认值。(如果该位设置为 1,则任何涉及一个或多个 NaN 的操作都会返回默认 NaN)。
24FZR/W0h刷新到零模式位的默认值。(如果该位设置为 1,则刷新到零模式启用)。
23-22RMODER/W0h舍入模式控制字段的默认值。(该字段的编码为:
0b00 四舍五入 (RN) 模式
0b01 舍入到正无穷 (RP) 模式
0b10 舍入到负无穷 (RM) 模式
0b11 舍入到零 (RZ) 模式。
几乎所有浮点指令都会使用指定的舍入模式)。
21-0RESERVEDR/W0h软件不应依赖保留位的值。写入除复位值之外的任何其他值都可能导致未定义的行为。

3.9.4.76 MVFR0 寄存器(偏移 = F40h)[复位 = 10110021h]

图 3-147 展示了 MVFR0,表 3-183 对其进行了介绍。

返回到汇总表

媒体和浮点功能 0
描述了浮点扩展提供的功能。

图 3-147 MVFR0 寄存器
3130292827262524
FP_ROUNDING_MODESSHORT_VECTORS
R-1hR-0h
2322212019181716
SQUARE_ROOT分频值
R-1hR-1h
15141312111098
FP_EXCEPTION_TRAPPINGDOUBLE_PRECISION
R-0hR-0h
76543210
SINGLE_PRECISIONA_SIMD
R-2hR-1h
表 3-183 MVFR0 寄存器字段说明
字段类型复位说明
31-28FP_ROUNDING_MODESR1h指示 FP 浮点硬件支持的舍入模式。该字段的值为:0b0001 - 支持所有舍入模式。
27-24SHORT_VECTORSR0h指示对 FP 短矢量的硬件支持。该字段的值为:0b0000 - 不支持。
23-20SQUARE_ROOTR1h指示对 FP 平方根运算的硬件支持。该字段的值为:0b0001 - 支持。
19-16分频值R1h指示对 FP 除法运算的硬件支持。该字段的值为:0b0001 - 支持。
15-12FP_EXCEPTION_TRAPPINGR0h指示 FP 硬件实现是否支持异常触发。该字段的值为:0b0000 - 不支持。
11-8DOUBLE_PRECISIONR0h指示对 FP 双精度运算的硬件支持。该字段的值为:0b0000 - 不支持。
7-4SINGLE_PRECISIONR2h指示对 FP 单精度运算的硬件支持。该字段的值为:0b0010 - 支持。
3-0A_SIMDR1h指示 FP 寄存器组的大小。该字段的值为:0b0001 - 支持,16 x 64 位寄存器。

3.9.4.77 MVFR1 寄存器(偏移 = F44h)[复位 = 11000011h]

图 3-148 展示了 MVFR1,表 3-184 对其进行了介绍。

返回到汇总表

媒体和浮点功能 1
描述了浮点扩展提供的功能。

图 3-148 MVFR1 寄存器
31302928272625242322212019181716
FP_FUSED_MACFP_HPFPRESERVED
R-1hR-1hR-0h
1514131211109876543210
RESERVEDD_NAN_MODEFTZ_MODE
R-0hR-1hR-1h
表 3-184 MVFR1 寄存器字段说明
字段类型复位说明
31-28FP_FUSED_MACR1h指示 FP 是否支持融合乘加运算。该字段的值为:0b0001 - 支持。
27-24FP_HPFPR1h指示 FP 是否支持半精度浮点转换运算。该字段的值为:0b0001 - 支持。
23-8RESERVEDR0h软件不应依赖保留位的值。
7-4D_NAN_MODER1h指示 FP 硬件实现是否仅支持默认 NaN 模式。该字段的值为:0b0001 - 硬件支持 NaN 值的传播。
3-0FTZ_MODER1h指示 FP 硬件实现是否仅支持刷新到零模式运算。该字段的值为:0b0001 - 硬件支持完整的去规范化数运算。