15.5.4 DTSL トレースソースオブジェクト

これらのオブジェクトは、プラットフォーム内のトレースデータのソースを表します。このようなオブジェクト例として、次のような ARM® デバイスがあります。

これらのデバイスは、トレースソースとして認識され、ATB ID 情報を提供する ITraceSource インタフェースを実装します。また、一般的には IDevice も実装します。これらのタイプの大部分のデバイスは、IDevice からレジスタアクセスメソッドのみを実装してデバイスの構成と制御を可能にし、通常、サポートされているレジスタの名前を定義するパートナークラスを持ちます。例えば、STMTraceSource クラスは STMRegisters と呼ばれるパートナークラスを持っています。このクラスは、STM レジスタセットの ID とその多くのビットフィールドを定義します。

次の図に、トレースソースオブジェクトのクラス階層を示します。

図 15-6 DTSL トレースソースクラス階層
DTSL トレースソースクラス階層


新しいトレースソースオブジェクトを実装する場合、これらのオブジェクトのベースを TraceDeviceConnectableTraceDeviceTraceSource、または ConnectableTraceSource に置くことができます。どれを選択するかは、ソースに接続が必要かどうか、およびトレースストリーム内でソース ID によって自己を識別できるかどうかに依存します。図に示すとおり、標準の ARM トレースソースはすべて ConnectableTraceSource から生成されます。その理由は、これらのオブジェクトが、コンフィギュレーションのために接続可能で、受信トレースストリームで自身を識別するための ATB ID を持つリアルデバイスであるためです。

次は、ETM トレースソースを作成するための代表的なコードシーケンスを DTSL Jython スクリプトから抜粋したものです。

1.devID = self.findDevice("CSETM")
2.etmATBID = 1
3.self.ETM = ETMv3_3TraceSource(self, devID, etmATBID, "ETM")		

行 1 は、RDDI コンフィギュレーションから CSETM デバイス ID(RDDI-DEBUG デバイスのインデックス番号)を見つけます。行 2 は、ETM に使用する ATB ID を割り当てます。行 3 は、DTSL ETMv3_3TraceSource オブジェクトを作成してこれに「ETM」という名前を付けます。プラットフォームに複数の ETM がある場合は、「ETM_1」と「ETM_2」、または「ETM_Cortex-A8」と「ETM_Cortex-M3」など、異なる名前を付けて下さい。

トレースソースオブジェクトを作成したら、トレースキャプチャデバイス(ある場合)に対して、これに関連付けるトレースソースオブジェクトのセットについて通知します。これにより、クライアントプログラムは、目的のソースの ATB ID を見つけ、そのソースのトレースデータの配信を要求することができます。

非機密扱いPDF file icon PDF 版ARM DUI0446ZJ
Copyright © 2010–2016 ARM.All rights reserved.