1. Cortex-M85 CTI寄存器深度解析
在嵌入式系统调试领域,交叉触发接口(Cross Trigger Interface, CTI)作为Arm CoreSight调试架构的核心组件,承担着处理器与各类调试模块间触发事件协调的重要职责。以Cortex-M85处理器为例,其CTI模块通过精心设计的寄存器组实现了高效的硬件级触发机制,本文将深入剖析其技术细节。
注意:CTI寄存器操作需在特权模式下进行,非特权访问将触发总线错误(BusFault)。实际开发中需确保调试代码运行在正确的权限层级。
1.1 CTI架构概览
Cortex-M85的CTI模块采用标准的CoreSight架构设计,主要功能包括:
- 触发信号的路由与分发
- 硬件事件的手动触发
- 调试状态机的协同控制
- 多核调试场景下的跨处理器触发
其核心寄存器可分为三大类:
- 操作寄存器:直接控制触发行为(如CTI_ITTRIGOUT)
- 状态寄存器:反映当前触发状态(如CTI_ITTRIGIN)
- 标识寄存器:提供模块识别信息(如CTI_DEVARCH)
2. 关键寄存器详解
2.1 CTI_ITTRIGOUT - 触发输出寄存器
这个32位只写(WO)寄存器是手动触发调试事件的主要接口:
c复制寄存器位域:
[31:8] - Reserved (RES0)
[7:0] - CTITRIGOUT (触发输出控制)
触发信号分为两种工作模式:
- 脉冲模式:用于ETM事件输入(bit7-bit4)
- 握手机制:用于系统中断和调试控制(bit3-bit0)
典型应用场景:
c复制// 触发ETM事件0
CTI_ITTRIGOUT = (1 << 4);
// 请求处理器暂停
CTI_ITTRIGOUT = (1 << 0);
2.2 CTI_ITTRIGIN - 触发输入寄存器
这个只读(RO)寄存器反映当前触发输入状态:
c复制[31:6] - Reserved (RES0)
[5:0] - CTITRIGIN (触发输入状态)
输入源包括:
- ETM事件输出
- DWT比较器输出
- 处理器暂停状态
