通道 API 目录¶
这提供了一种将触发器连接到通道的简便方法,无需直接操作“regs”子目录元素所需的多次寄存器操作。
许多文件提供了此 API。
>$ ls ./cti_sys0/channels/
chan_clear chan_inuse chan_xtrigs_out trigin_attach
chan_free chan_pulse chan_xtrigs_reset trigin_detach
chan_gate_disable chan_set chan_xtrigs_sel trigout_attach
chan_gate_enable chan_xtrigs_in trig_filter_enable trigout_detach
trigout_filtered
对这些元素的大多数访问采用以下形式:
echo
其中可选的
例如
>$ echo 0 1 > ./cti_sys0/channels/trigout_attach
>$ echo 0 > ./cti_sys0/channels/chan_set
将 trigout(1) 连接到 channel(0),然后激活 channel(0),在 cti_sys0.trigout(1) 上生成一个设置状态。
API 操作
trigin_attach, trigout_attach:将通道连接到触发信号。
trigin_detach, trigout_detach:从触发信号中分离通道。
chan_set:设置通道 - 设置状态将通过 CTM 传播到其他连接的设备。
chan_clear:清除通道。
chan_pulse:将通道设置为单个 CoreSight 时钟周期。
chan_gate_enable:写入操作设置 CTI 门以将通道传播(启用)到其他设备。此操作需要一个通道号。CTI 门默认在上电时为所有通道启用。读取以列出当前在门上启用的通道。
chan_gate_disable:写入通道号以禁用该通道的门。
chan_inuse:显示当前连接到任何信号的通道。
chan_free:显示没有连接信号的通道。
chan_xtrigs_sel:写入通道号以选择要查看的通道,读取以显示所选通道号。
chan_xtrigs_in:读取以显示连接到所选视图通道的输入触发器。
chan_xtrigs_out:读取以显示连接到所选视图通道的输出触发器。
trig_filter_enable:默认为启用,禁用以允许设置潜在危险的输出信号。
trigout_filtered:如果启用了过滤 trig_filter_enable,则阻止设置输出触发信号。其中一个用途是防止意外的 EDBGREQ 信号停止核心。
chan_xtrigs_reset:写入 1 以清除所有通道/触发器编程。将设备硬件重置为默认状态。
下面的示例将输入触发器索引 1 连接到通道 2,并将输出触发器索引 6 连接到同一通道。然后使用相应的 sysfs 属性检查通道/触发器连接的状态。
这些设置意味着如果输入触发器 1 或通道 2 变为活跃,则输出触发器 6 将变为活跃。然后我们启用 CTI,并使用软件通道控制来激活通道 2。我们在 choutstatus 寄存器上看到活跃通道,并在 trigoutstatus 寄存器上看到活跃信号。最后,清除通道会移除此状态。
例如
.../cti_sys0/channels# echo 2 1 > trigin_attach
.../cti_sys0/channels# echo 2 6 > trigout_attach
.../cti_sys0/channels# cat chan_free
0-1,3
.../cti_sys0/channels# cat chan_inuse
2
.../cti_sys0/channels# echo 2 > chan_xtrigs_sel
.../cti_sys0/channels# cat chan_xtrigs_trigin
1
.../cti_sys0/channels# cat chan_xtrigs_trigout
6
.../cti_sys0/# echo 1 > enable
.../cti_sys0/channels# echo 2 > chan_set
.../cti_sys0/channels# cat ../regs/choutstatus
0x4
.../cti_sys0/channels# cat ../regs/trigoutstatus
0x40
.../cti_sys0/channels# echo 2 > chan_clear
.../cti_sys0/channels# cat ../regs/trigoutstatus
0x0
.../cti_sys0/channels# cat ../regs/choutstatus
0x0