カスタムパフォーマンスカウンタの作成

[Counter Configuration(カウンタの設定)]ダイアログボックスを使用してハードウェア固有のパフォーマンスカウンタおよび Linux パフォーマンスカウンタを設定できるだけでなく、gator デーモンおよびドライバには、キャプチャ時に収集されたカウンタをカスタマイズするためのフックが用意れています。

Streamline では、パフォーマンスモニタリングユニット、Lunix フック、メモリマップされた周辺装置からデフォルトのカウンタセットが生成されます。Streamline でデフォルトで提供されていないハードウェアメトリックを追跡する場合は、このカウンタのリストにユーザ独自のカウンタを追加できます。

Show/hidegator_events_mmaped.c example ファイル

Streamline のコピーと共に配布されている gator-driver.tar.gz アーカイブには、gator_events_mmaped.c と呼ばれる gator のソースファイルがあります。このファイル内にあるイベントは、events.xml ファイルには含まれておらず、[カウンタの設定]ダイアログボックスで利用可能なカウンタのリストには表示されません。このファイルは、カスタムカウンタの追加方法を示すコード例として提供されたものです。

Note

DS-5 により提供されるすべてのファイルを検索するには、メインメニューから[ヘルプ] → [ARM Extras...]を選択します。

ユーザ独自のカウンタを追加するプロセスについて知識を深めるには、gator_events_mmaped.c 内のシミュレーションの例を gator に組み込んでください。

これを行うには、以下の手順に従います。

  1. gator_events_mmaped.c サンプルファイルを好きなエディタで開きます。

  2. gator_events_mmaped.c のコメント部分の xml をコピーします。

  3. .../gator ディレクトリにある events.xml ファイルを開きます。

  4. gator_events_mmaped.c のコメント部分からコピーした xml を events.xml ファイルの Linux カテゴリの終了タグの直後に追加します。

  5. コピーした xml からコメントマーク * をすべて削除します。

  6. events.xml を保存します。

  7. events.xml をターゲットにコピーします。

  8. ターゲットのコマンドラインに「./gatord &」と入力し、gatord を再起動します。

  9. Streamline で[Counter Configuration(カウンタの設定)]ダイアログを開きます。新しいカテゴリ mmaped が、シミュレーションされた Sine(正弦)カウンタ、Triangle(三角)カウンタ、および PWM カウンタと共に表示されます。

  10. Sine(正弦)カウンタをカウンタのリストに追加します。

  11. キャプチャセッションを実行します。

セッションが成功すると、シミュレートされた Sine(正弦)カウンタによって生成された波形が、タイムラインビューのグラフセクションに表示されます。

Figure 51. タイムラインビューのカスタム Sine(正弦)カウンタ

タイムラインビューのカスタム Sine(正弦)カウンタ

Show/hide独自のカウンタの作成

独自のカウンタを作成するには、gator ソースに含まれる gator_events_mmaped.c ファイルまたは他の gator_events_x ファイルで使用されている方法を模倣してください。

gatord がカスタムソースと確実に相互作用するように、次の手順に従ってください。

  1. 空の gator_events_your_custom.c ファイルを作成するか、gator_events_mmaped.c を複製します。

  2. makefile をアップデートし、新しい gator_events_your_custom.c ファイルを作成します。

  3. gator_events_mmaped.c をテンプレートとして使用しない場合は、プリプロセッサディレクティブ #include "gator.h" を追加します。

  4. gator_events_init マクロをインクルードします。

  5. 新しいソースファイルに次の関数を実装します。gator_events_your_custom_initgator_events_your_custom_interfacegator_events_your_custom_create_filesgator_events_your_custom_startgator_events_your_custom_read、および gator_events_your_custom_stop

  6. 新しいカウンタはすべて、events.xml ファイルに追加する必要があります。

Show/hidegator_events 関数

以下に、各 gator_event 関数について簡単に説明します。

gator_events_your_custom_init

gator は、この関数の起動を呼び出します。

gator_events_your_custom_interface

カスタムイベントファイルの呼び出しを起動するオブジェクトを gator に指示します。

gator_events_your_custom_create_files

カスタムディレクトリ、有効なファイル、イベントファイル、キーファイルを /dev/gator/events に追加します。

gator_events_your_custom_start

gator は、起動時または実行時にこの関数を呼び出します。

gator_events_your_custom_read

gator は、サンプルごとにこの関数を呼び出します。

gator_events_your_custom_stop

gator は、キャプチャセッションが中止されると、この関数を呼び出します。

Show/hideevents.xml ファイルへのイベントの追加

events.xml ファイルのカウンタ要素で、以下の属性を使用します。

type

カウンタリソースの識別子。

event

アーキテクチャまたは実装に固有のイベント番号(10 進数)。プロセッサのアーキテクチャ仕様書またはテクニカルリファレンスマニュアルに基いて決定されます。

title

Streamline によって表示されるグラフのタイトル。タイトルが一致しているカウンタはグラフにスタックされます。

name

Streamline によって表示される名前。

per_cpu

Streamline で CPU 単位でデータを収集するかどうかを定義します。この値を yes に設定すると、このカウンタのデータは CPU ごとに別々に収集されます。

Show/hideL2C-310 メモリマップされたペリフェラル

Streamline と動作する L2C-310 メモリマップされたペリフェラルを取得するには、以下の手順に従います。

  1. .../gator/driver-src のアーカイブにある gator_events_l2c-310.c ファイルを開きます。

  2. gator_events_l2c-310.cinit 関数を見つけます。

  3. init 関数の既存の #if ステートメントに次の #if ステートメントを追加します。

    #if defined(Your_Architecture)
    
    	gator_events_l2c310_probe(L2C_310_Address);
    
    #endif
    

    Note

    Your_Architecture をアーキテクチャの名前で、L2C_310_Address を L2C-310 の 16 進数の物理アドレスで置換します。

  4. gator ドライバを再構築します。

  5. ターゲットに接続します。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0482FJ
Non-ConfidentialID020712