2022/4/7
製品
カテゴリー
タグ
2169 Views
(拡張)イベントID出力ポイント挿入方式による設定方法
イベントID出力ポイントは、イベントID値が12bit値となり、イベントIDを抑えることで、レポートデータを小さくできます。
一方、拡張イベント出力ポイントは、32bit値になります。
ターゲットのシステムが提供するプロセスやスレッドのIDが32bit値の場合は、
拡張イベントID出力ポイントを使用します。但し、高速テストポイント変換ができません。
Contents
サンプルドライバのダウンロード
対応OS | 接続方式 | 言語 | イベントID出力方式 | ダウンロード |
---|---|---|---|---|
NonOS/iTRON | GPIO 4bit | C/C++ | イベントID出力ポイント挿入 拡張イベントID出力ポイント挿入 |
≫ダウンロード |
DT+プロジェクト作成時の設定
使用するドライバのイベント出力方式に合わせて、プロジェクト設定の「イベントID出力方式」を設定します。
「プロジェクト設定」ダイアログで、[イベントID出力ポイント挿入]、もしくは[拡張イベントID出力ポイント挿入]を選択します。
イベントID出力ポイントの挿入
イベントIDを出力する為の専用テストポイントをソースコードに挿入します。
ターゲットOSのタスクディスパッチャ処理などに挿入することになります。
OSの無い環境であれば、各タスクの先頭や割り込み関数などの先頭に挿入してください。
以下はFreeRTOSというRTOS環境において、イベントID出力ポイントを挿入したときの例です。
次に実行されるタスクID値変数(pxCurrentTCB -> uxTCBNumber)を指定して挿入しています。
/* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the tasks of the
same priority get an equal share of the processor time. */
/* ここが次に実行されるタスクのエントリー処理 */
listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) );
__DtTestPointEventTrigger( __DtFunc_vTaskSwitchContext, __DtStep_4, pxCurrentTCB->uxTCBNumber ); ←ここに挿入
/* タスクの切り替え処理 */
traceTASK_SWITCHED_IN();
<イベントID出力ポイントの挿入方法>
DT+Traceアプリのソースコードウィンドウ上からイベントID出力ポイントを挿入します。
-
ソースコードウィンドウ上で、タスクディスパッチする関数などの挿入したい位置で右クリック。
-
ポップアップメニューから[イベントID出力ポイントの挿入]を選択。
-
以下のダイアログから、直値指定または変数値を指定して、[OK]でクリック。
※使用するコンパイラに適した文字列を入力してください。(コンパイルエラーとなるような記述は避けてください。)
■イベントID出力ポイントの場合
■拡張イベントID出力ポイントの場合
データ取得
イベントID出力ポイントが挿入されたソースコードをコンパイルし、ターゲットを動作させて、DT+Traceでテストレポートを取得します。イベントID出力ポイントによりトレースされたデータは、テストレポート上で、「ステップ」欄に「## EventTrigger」と表示されます。
解析方法
イベント定義の設定
イベントIDに対し、名称(イベント定義)を付けることが可能です。
イベント定義の設定は任意です。
イベント定義設定は、テストレポートの「イベント定義」欄や、イベントトレース、プロセス占有率スコープ、関数遷移スコープといった機能に反映され、
イベント遷移の解析をより分かりやすくします。
以下の手順で表示されるダイアログから設定します。
- DT+Traceアプリのメニュー > レポート解析 > イベントトレース > イベント定義 > イベント定義の設定
プロセス解析モードの有効化
この設定を有効にすることで、コアやイベントID毎に解析結果を表示できるようになります。
- DT+Traceアプリのメニュー > ツール > 環境設定を選択。
- 「環境設定」ダイアログで、解析を選択。
- 「プロセス解析モードを有効にする」をチェックON。
関数遷移スコープでのデータ解析
以下の手順で、解析結果が表示されます。
- DT+Traceアプリのメニュー > レポート解析 > 関数遷移スコープ
横軸が時間軸で、縦軸はコア > プロセス(イベントID) > 関数名のツリーが表示され、プロセスや関数単位の状態遷移が確認できます。
マクロ視点からミクロ視点まで、多角的に「見える化」することで、ソフトの動きを把握しやすくします。
さらに関数遷移スコープのグラフ上をダブルクリックすることでテストレポートの該当位置にジャンプしたり、2つのカーソルで時間情報の確認もできます。
プロセス占有率スコープでのデータ解析
- DT+Traceアプリのメニュー > レポート解析 > イベントトレース > プロセス占有率スコープ
- 「解析範囲指定」ダイアログで、解析範囲を指定して、「OK」をクリック。
横軸が時間軸で、各プロセスの占有率を折れ線グラフで表示します。
また、移動させたカーソル部分のタイミングにおける占有時間、占有率、最大・最小時間をリスト表示します。
負荷の高いプロセスを一目で確認できます。
関数遷移スコープと同様に、グラフ上をダブルクリックすることで、テストレポートの該当位置にジャンプができます。