クロス トリガーは、Arm で提供されるエンベデッド クロス トリガリング (ECT) モジュールでサポートされます。ECT には、SoC 内の複数サブシステムがデバッグ トリガーを交換することで互いに交信するメカニズムがあります。ECT には、次の 2 つのモジュールが含まれます。
- クロス トリガー インターフェイス (CTI) - CTI はトリガー リクエストをまとめてマップし、それらを ETC 上のその他すべてのインターフェイスにチャネル イベントとしてブロードキャストします。CTI はチャネル イベントを受信すると、これをトリガー出力にマップします。これにより、サブシステムがイネーブルになり、相互にクロス トリガーできるようになります。
- クロス トリガー マトリックス (CTM) - CTM はチャネル イベントの分配を制御し、CTI または CTM のいずれかへ接続するためのチャネル インターフェイスを提供します。これにより、複数の ECT を互いに接続できるようになります。
次の図は、CTI と CTM が一般的な設定でどのように使用されるかを示しています。
CTM は複数チャネルを持つイベント ブロードキャスト ネットワークを形成します。CTI は、1 つまたは複数チャネルでイベントを検出し、受信したイベントをトリガーにマップし、トリガーを CTI に接続された 1 つまたは複数の CoreSight コンポーネントに送信します。また、接続された CoreSight コンポーネントからのトリガーをまとめてマップして、それらを 1 つまたは複数チャネルのイベントとしてブロードキャストします。そのレジスタ インターフェイスを介して、各 CTI がイベント特定のチャネルを聞くようにしたり、トリガーを特定チャネルへイベントとしてブロードキャストしたりするように設定できます。
上記の例の場合、チャネルが 4 つあります。一番上の CTI が Trigger Input 0 のトリガー イベントを Channel 0 に伝搬するように設定されています。その他の CTI は、このチャネルでイベントを聞いて、トリガー出力を介してイベントをこれらの CTI の接続されたデバッグ コンポーネントへブロードキャストするように設定できます。CTI ではチャネル ゲーティングもサポートされており、チャネルをディスエーブルにして I/O マッピングをトリガーしなくても、選択したチャネルをオフにできるようになっています。