ソフトウェアのみのトレース

ソフトウェアのみのトレースソリューションで、システムの状況を把握しましょう

組み込みシステムを深く理解するためには、プログラムの流れやデータ操作に関するリアルタイムかつ非侵襲的な情報を取得する手段として、一般的にハードウェアベースのオフチップトレースが推奨されます。たとえプロセッサやボードの制限などの理由でオフチップトレースが利用できない場合でも、TRACE32 は、以下の 2 つの純粋なソフトウェアベースの手法を通じて、強力なトレース機能を提供します。 LOGGERおよびFDX(Fast Data eXchange)トレースに加え、インスツルメンテーションなしで実行時の挙動を分析できるTRACE32 SNOOPerがこれを補完します。これらにより、関数やタスクの実行時解析といったユースケースを実現できます。TRACE32のソフトウェアトレースを利用するために、追加のTRACE32トレースモジュールやTRACE32トレースライセンスは必要ありません。

トレースIPを使用せずにチップを解析する

AUTOSAR ARTI プロファイリングを有効にします

すべてのチップで最適に活用するための3つの選択肢

ニーズに合わせて「ソフトウェアトレース」を活用する

LOGGERとFDXはいずれもソフトウェアベースのトレース手法であり、ターゲットアプリケーションに修正を加える必要があります。この修正により、アプリケーションはトレース情報を予約されたメモリ領域に書き込むよう仕組まれます。 弊社では、LOGGERおよびFDXトレース用の専用ソースファイルセットを提供しており、これらはターゲットアプリケーションに組み込まれます。

LOGGER によるソフトウェアのみのトレース

LOGGERは、ローターバッハ が提供するトレース形式を用いて、ターゲットメモリ上の予約済みバッファに特定のトレース情報を書き込むために、ターゲットアプリケーションの修正を必要とするソフトウェアトレース手法です。記録が停止すると、 TRACE32 ターゲットメモリからデータを取得し、表示や分析を行います。バッファが満杯になった場合、アプリケーションは古いエントリを上書きする(FIFOモード)か、新しいデータの書き込みを停止する(スタックモード)かのいずれかを選択できます。 トレース手法であるLOGGERは、主にハードウェアベースのトレースが利用できない場合に使用されます。

AUTOSAR ARTI に対する LOGGER のサポート

当社は、AUTOSAR Run-Time Interface(ARTI)トレースフックに基づくインスツルメンテーショントレースを通じて、AUTOSAR Classic Platform(CP)システムのトレースに対する専用のサポートを提供しています。 対象となるイベントのトレースメッセージは、ARTIトレース変数への書き込みアクセスが発生した際に、ターゲットアプリケーション内のLOGGERトレース・インスツルメンテーションによって生成されます。 2つの実装が用意されています。1つはSMP用、もう1つはシングルコア用です。SMP版はスピンロックを使用していませんが、シングルコア版に比べてわずかなオーバーヘッドが生じるコア間バッファ管理を採用しています。

詳細はこちら TRACE32 AUTOSAR サポート

FDX によるソフトウェアのみのトレース

FDX(Fast Data eXchange)ソフトウェア・トレースは、通常は実行中のメモリアクセスを介して、トレース情報をホスト上のTRACE32 PowerViewソフトウェアへストリーミングします。TRACE32はFDXデータストリームを解釈し、通常のトレース情報デバイスとして処理することが可能です。 ターゲットアプリケーションは、必要なトレース情報を小さなリングバッファ(最小サイズ2トレースレコード)に書き込みます。このバッファは一時的なFIFOとして機能し、より長時間の記録セッションを可能にします。通信チャネルが十分な速度でデータを転送できない場合、FDXターゲットコードはデータの損失を防ぐために実行を一時停止します。FDXホストアプリケーションは、プログラムの実行中に、ターゲットのトレースバッファからホストコンピュータ上の大きなトレース・バッファへデータが確実に転送されるようにします。 チップにDebug Communications Channel(DCC)を備えたオンチップデバッグユニットが実装されている場合、必要なトレース情報をTRACE32 PowerViewソフトウェアへ直接転送できます。

AUTOSAR ARTI に対する FDX のサポート

当社は、AUTOSAR Run-Time Interface(ARTI)トレースフックに基づく計測トレースを通じて、AUTOSAR Classic Platform(CP)システムのトレースに対する専用のサポートを提供しています。 対象となるイベントのトレースメッセージは、ARTIトレース変数への書き込みアクセスが発生した際に、ターゲットアプリケーション内のFDXトレース計測機能によって生成されます。 実装には、SMP用とシングルコア用の2種類があります。SMP版はスピンロックを使用するため、シングルコア版に比べてわずかな時間的オーバーヘッドが生じます。

詳細はこちら TRACE32 AUTOSAR サポート

TRACE32 SNOOPer:インスツルメンテーションなしで実行時の挙動を分析

場合によっては、例えばターゲットコードを修正できない場合など、インスツルメンテーションベースのLOGGERやFDXソフトウェアトレースが利用できないことがあります。そのような状況では、実行時の挙動を把握するための唯一の手段は、サンプルベースのプロファイリングとなります。TRACE32は、SNOOPer機能(サンプルベースのプロファイリング)を通じてこのアプローチをサポートしています。 サンプルベースのプロファイリングは、プログラムカウンタやデータ値のスナップショットを定期的に収集することで機能します。タスクのトレースについては、現在のタスク識別子を格納する変数をサンプリングすることで実現できます。このトレースは連続的な記録ではなく定期的なサンプリングに依存しているため、結果は概算であり、本質的に統計的な誤差を含みます。 したがって、サンプルベースのプロファイリングは、実行時間の全体像を把握するには有用ですが、関数やタスクの実行時間制約の検証など、高い精度が求められるシナリオには適していません。 結論として、TRACE32のサンプルベースのプロファイリング(SNOOPer)は、インストルメンテーションが実施できない場合に、軽量な代替手段となります。実行時間の全体像を把握できますが、特にピーク値については精度が低下します。

TRACE32 SNOOPer:インスツルメンテーションなしで実行時の挙動を分析

場合によっては、例えばターゲットコードを修正できない場合など、インスツルメンテーションベースのLOGGERやFDXソフトウェアトレースが利用できないことがあります。そのような状況では、実行時の挙動を把握するための唯一の手段は、サンプルベースのプロファイリングとなります。TRACE32は、SNOOPer機能(サンプルベースのプロファイリング)を通じてこのアプローチをサポートしています。 サンプルベースのプロファイリングは、プログラムカウンタやデータ値のスナップショットを定期的に収集することで機能します。タスクのトレースについては、現在のタスク識別子を格納する変数をサンプリングすることで実現できます。このトレースは連続的な記録ではなく定期的なサンプリングに依存しているため、結果は概算であり、本質的に統計的な誤差を含みます。 したがって、サンプルベースのプロファイリングは、実行時間の全体像を把握するには有用ですが、関数やタスクの実行時間制約の検証など、高い精度が求められるシナリオには適していません。 結論として、TRACE32のサンプルベースのプロファイリング(SNOOPer)は、インストルメンテーションが実施できない場合に、軽量な代替手段となります。実行時間の全体像を把握できますが、特にピーク値については精度が低下します。

ご質問は?

40年以上にわたって業界をリードしてきた当社の専門エンジニアが、お客様をサポートいたします。製品に関するアドバイスや、どの構成が最適かをお知りになりたい場合は、セールスエンジニアにお問い合わせください。 ローターバッハ システムに関するサポートが必要な場合は、当社のエンジニアリング・サポート・チームにご連絡ください。