Article header library 128761  1

DS-5 活用テクニック~トレース機能の使い方

この記事では、インテル® SoC FPGA エンベデッド開発スイート(SoC EDS)に付属のデバッガ Arm® DS-5™ Development Studio Intel® SoC FPGA Edition(DS-5™)の使い方に関する補足情報を記載します。

今回は、DS-5™ を使用して SoC FPGA デバイス上で実行しているソフトウェアの命令トレースを取得する方法を紹介します。トレース機能で CPU の命令実行履歴をトレースすることにより、不具合など事象発生に至るまでのソフトウェアの詳細動作を時系列を遡って確認することができます。

なお、この記事で紹介する方法では、トレースデータの保存先に Embedded Trace FIFO (ETF) と呼ばれるオンチップのトレース専用メモリ(サイズ32KB)を使用します。追加の機材やハードウェアを用意することなく、JTAG デバッグが行えるターゲット環境のみでご利用いただけます。この記事で扱っていないオプション設定など、トレース機能に関する詳細情報については、DS-5™ のマニュアルを参照してください。

DS-5™ ドキュメント・ページ(Arm® Developer サイト)

トレース機能の有効化(DTSL コンフィギュレーション)

DS-5™ のトレース機能を使用するためのオプション設定は、デバッグ・コンフィギュレーション(デバッグ構成)の [接続] タブ上に用意されている DTSL (Debug Trace Service Layer) オプションから行います。既存のデバッグ・コンフィギュレーション設定に、DTSL オプションの編集を加えるだけでトレース機能が使用可能になります。

Article header 130513 1  5

図1 デバッグ構成 ‐ 接続タブ

DTSL コンフィギュレーション起動

DTSL オプションの [編集...] ボタンをクリックすることで該当のオプション設定ウィンドウ(DTSL コンフィギュレーション)が起動します。初期選択されている [Cross Trigger] タブは、トレースとは別のデバッグ機能に関するオプション設定用となので編集不要です。その他のタブ上に用意されているオプションを編集することでトレース機能を有効化します。

Article header 130513 2  2

図2 DTSL コンフィギュレーションの起動

[Trace Buffer] タブ

Article header 130513 3  2

図3 DTSL ‐ Trace Buffer タブ

[Cortex-A9] タブ

Article header 130513 4  2

図4 DTSL ‐ Cortex-A9 タブ

[STM] タブ / [ETR] タブ

これらのタブは編集不要です。
[STM] タブでは System Trace Macrocell 有効/無効の選択が行えます。CPU の命令トレース以外のトレースイベントを記録したい場合に有効化します。[ETR] タブはトレースログの保存先に ETR を選択した場合のみ設定が必要となります。ETR の場合はトレースログの保存先が SDRAM になるので、オプション項目としてトレースログ保存先のアドレスなどが含まれます。

[ETF] タブ

Article header 130513 5  1

図5 DTSL ‐ ETF タブ

全てのタブのオプション設定が完了したら [OK] ボタンをクリックして DTSL コンフィギュレーションを終了します。あとはデバッグ開始するのみです。

トレースログの参照方法

デバッグ開始以降、CPU が動作停止(ブレイク)する毎にトレースビューの表示内容が最新のトレースログで更新されます。通常は以下のイメージのように、サブウィンドウとしてトレースビューが表示されます。

Article header 130513 6  1

図6 デバッグ画面1(通常の画面配置)

以下、トレースビューのタブをダブルクリックして最大化したイメージです。

Article header 130513 7  3

図7 デバッグ画面2(トレースビュー最大化)

さらに、特定のトレースログをクリックすると以下のようにソースコードとの対比も可能になります。

Article header 130513 8  2

図8 デバッグ画面3(トレースビュー最大化・ソース表示)

以上、今回はトレース機能の使い方を紹介させて頂きました。簡単な設定のみで利用できるので、ぜひデバッグの際に活用してみてください。

 

おすすめ記事/資料はこちら

おすすめ FAQ はこちら

おすすめセミナー/ワークショップはこちら

関連タグ