Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

CTI信号 (「CPU停止」など ) をTRAVEO™ T2Gトリガマルチプレクサへルーティング – KBA235072

CTI信号 (「CPU停止」など ) をTRAVEO™ T2Gトリガマルチプレクサへルーティング – KBA235072

IFX_Publisher2
Community Manager
Community Manager
Community Manager
1000 replies posted First like given 750 replies posted

Translated by: MaMi_1205306

Original KBA:
  Routing a CTI signal (e.g., “CPU halted”) to the TRAVEO™ T2G trigger multiplexer – KBA235072

バージョン: **

Arm® CoreSight Cross Trigger Interface(CTI)は、さまざまなCPUコア間でのデバッグ関連信号のルーティングをサポートします。さらに、汎用CTIトリガ入力信号 CTI_TR_IN[x]と汎用CTIトリガ出力信号 CTI_TR_OUT[x]があり、これらはすべてのMCUトリガ信号が利用可能なTRAVEO™ T2Gトリガマルチプレクサに接続されています。これは、特定のシステムイベントで実行を停止するようにCPUへ要求したり、CPUが現在停止している場合には周辺機器(TCPWMなど)を一時停止したりするなどのユースケースをサポートできます。後者の場合、「CPU停止」信号をTRAVEO™ T2Gトリガマルチプレクサへルーティングする必要があります。このマルチプレクサでは、さらに構成/処理が必要になります(このナレッジベースの記事の範囲には含まれません)。

TRAVEO™ T2GのArm® CoreSight デバッグインフラストラクチャは、各CPUコア(CM4_CTIなど)に1つ、共通のCTI(TRC_CTI)に1つずつ、複数のCTIで構成されています。 TRC_CTIは、CPU固有のCTIとともに、TRAVEO™ T2Gトリガマルチプレクサに接続される汎用CTIトリガ入力/出力信号を提供します。すべてのCTIのすべてのトリガ入力および出力信号の完全なリストについては、TRAVEO™ T2Gアーキテクチャリファレンスマニュアルの「EmbeddedCross-Triggering」セクションを参照してください。

すべてのCTIトリガ入力および出力信号は、トリガ入力信号とトリガ出力信号の間に接続を作成するために、使用可能な4つのクロストリガマトリックス(CTM)チャネルのいずれかに接続できます。

「CM4 halted」信号をCTI_TR_OUT[0]信号に接続するためのサンプルコード:

#define TRC_CTI_BASE                                                           0xE0080000UL
#define TRC_CTI_REG__CTICONTROL                             (*((volatile uint32_t*)(TRC_CTI_BASE + 0x00)))
#define TRC_CTI_REG__CTIINEN(trigin_idx)                (*((volatile uint32_t*)(TRC_CTI_BASE + 0x20 + 4*trigin_idx)))
#define TRC_CTI_REG__CTIOUTEN(trigout_idx)         (*((volatile uint32_t*)(TRC_CTI_BASE + 0xa0 + 4 * trigout_idx)))
#define TRC_CTI_TRIGIN_IDX__CM0PLUS_HALTED    0
#define TRC_CTI_TRIGIN_IDX__CM4_HALTED               4
#define TRC_CTI_TRIGIN_IDX__CM7_0_HALTED          4
#define TRC_CTI_TRIGIN_IDX__CM7_1_HALTED          5
#define TRC_CTI_TRIGOUT_IDX__CTI_TR_OUT0         6
#define TRC_CTI_TRIGOUT_IDX__CTI_TR_OUT1         7

// TRC_CTIレジスタは、デバッガが接続されている場合のみアクセス可能
if(CPUSS->unDP_STATUS.stcField.u1SWJ_CONNECTED != 0)
{
    // TRC_CTIを有効
    TRC_CTI_REG__CTICONTROL = 1;

    // 「CM4 halted」入力トリガ信号をCTMチャンネル#0へルーティング
    TRC_CTI_REG__CTIINEN(TRC_CTI_TRIGIN_IDX__CM4_HALTED)    = 1;

    // CTMチャンネル#0を「CTI_TR_OUT[0]」出力トリガ信号へルーティング
    TRC_CTI_REG__CTIOUTEN(TRC_CTI_TRIGOUT_IDX__CTI_TR_OUT0) = 1;
}

注釈:

TRC_CTIレジスタには、Cortex®-M4またはCortex®-M7#0(CM7_0)からのみそれぞれアクセスできます。ただし、これらのCPUは、他のCPUコア(Cortex®-M0+またはCortex®-M7#1)で実行されているアプリケーションソフトウェアが必要な構成を確立できます。

さらに、レジスタには、デバッガが接続されている場合にのみアクセスできます。サンプルコードに示すように、ソフトウェアはデバッガの接続状態を確認できます。

Arm® CoreSight Cross Triggerコンポーネントの詳細情報(機能やレジスタの説明など)については、Arm®のWebサイトを参照してください。

0 件の賞賛
414 件の閲覧回数