1

lauterbach-trace32 プローブを使用して、物理ハードウェア上でリアルタイム アプリケーションをテストしています。

Trace32 のドキュメントは膨大で非常に技術的ですが、必要なものを実装する方法を見つけることができません。プログラム実行で特定のコード行(テスト中)に到達するたびにtrace32関数を実行する方法があれば教えていただきたいです。

必要なのは、特定の条件が満たされるたびに自動イベントが発生する、データベース シナリオのトリガーに似たものです。

皆さん、ありがとうございました!

4

1 に答える 1

2

ブレークポイントに到達するたびに PRACTICE コマンドを実行するブレークポイントをいつでも設定できます。例えば

Break.Set myFunc /CMD "PRINT ""Hello World""" /RESUME 

したがって、関数 myFunc() に到達すると、ターゲット CPU が停止します。次に PRACTICE コマンドPRINT "Hello World"が実行され、最後にターゲット CPU が実行を継続します (オプションのおかげです/RESUME)。(二重引用符は文字列内の二重引用符をエスケープすることを考慮してください)

単一のコマンドの代わりに、(オプションを複数回使用して) 複数のコマンドを/CMD実行したり、PRACTICE スクリプトを実行したりすることもできます。

そのコード行でCPU を停止することなく、特定のコード行でデバッガー アクションをトリガーする場合は、外部トレース インターフェイスを使用したリアルタイム トレースが必要になります。たとえば、Embedded Trace Macro-cell (ETM) を備えた ARM CPU や、Nexus インターフェイスを備えた PowerPC が必要になります。さらに、トレース記録用の Lauterbach ハードウェア (PowerTrace、CombiProbe、uTrace など) が必要になります。

リアルタイム トレースがある場合は、特定のコード行に「トリガー ポイント」を設定し、「トリガー ポイント」がトリガーされたときにコマンドを実行できます。ブレークポイントの場合とほぼ同じように見えます。

Break.Set myFunc /TraceTrigger /CMD "PRINT ""Hello World""" /RESUME 

したがって、唯一の違いはオプション "/TraceTrigger" です。もちろん、リアルタイム トレースが実際にセットアップで機能していることを確認する必要があります。

于 2015-08-07T09:16:24.260 に答える