マルチコアデバッグの概要
マルチコアデバッグの概要
マルチコアデバッグとは、複数のコアを持つターゲットをデバッグできるという意味です。C-SPY デバッガは、以下の 2 つの方法でマルチコアデバッグをサポートしています。
対称マルチコアデバッグ(SMP)。これは同じアプリケーションを実行する2つ以上の同じコアをデバッグすることを意味します。これは、IAR Embedded Workbench IDEの1つのインスタンスを使用して処理されます。
非対称マルチコアデバッグ(AMP)。これは別々のアプリケーションを実行する2つ以上のコアをデバッグすることを意味します。これは、IAR Embedded Workbench IDEの2つ以上のインスタンスを使用して処理され、各インスタンスは1つ以上の同じコアに接続されます。
対称マルチコアデバッグ
対称マルチコアデバッグとは、ターゲットに、同じアプリケーションを実行する 2 つ以上の同一のコアがあることを意味します。通常、コアには単一のデバッグ プローブを通じてアクセスできます。
デバッガではいつでも、フォーカスが合っているコア 1 つについてのみ、その状態がウィンドウに表示されます。
対称マルチコアデバッグの特別なサポートの概要は以下のとおりです。
アプリケーション全体を自動的に起動および停止するか、コアを独立して個々に実行するかを制御することができます。
デバッガでフォーカスするコアを設定することも可能です。これはエディタウィンドウ、[逆アセンブリ]、[登録]、[ウォッチ]、[ローカル]、[コールスタック]などの各ウィンドウに影響します。
[コア]ウィンドウには使用可能なすべてのコアの一覧が表示され、実行の状態など各コアの情報が示されます。[マルチコア]ツールバーは、[コア]ウィンドウを補完するものです。
[スタック]ウィンドウには、専用のスタックセクションを通じて各コアのスタックを表示することができます。
RTOSサポートは、個別のマルチコアプラグインで使用できます。通常は対応するシングルコアのプラグインのように機能しますが、別々のコアで複数のアクティブなタスクを処理します。プラグインでは、[スタック]ウィンドウで選択したタスクのスタックを表示するために必要な情報も提供されます。
非対称マルチコアデバッグ
非対称マルチコアとは、ターゲットに、異なるアプリケーションを実行する2 つ以上のコアがあることを意味します。ターゲットをデバッグするには、2つ以上の IDE インスタンスが使用され、それぞれが 1 つ以上の同一のコアに接続されます。この IDE インスタンスは同期しており、デバッグセッションが開始および停止して、どのインスタンスからもコアが制御できるようになっています。共有メモリを除いて、各デバッグセッションではそれ自体のコアに関する情報(変数、コールスタックなど)しか表示されません。
1 つの IDE インスタンスを手動で開始すると、そのインスタンスはマスターとして参照されます。非対称マルチコアデバッグセッションを開始するとき、マスターインスタンスは 1 つ以上のパートナー(あるいはスレーブ)インスタンスを開始できます。。パートナーインスタンスがすでに実行中であれば、それが再利用されます。
すべてのンスタンスには、それぞれ独自のプロジェクト、マスターおよびパートナーが必要です。各プロジェクトには、正しい派生プロセッサ、リンカ、デバッガオプションを設定する必要があります。また、マスタープロジェクトは、マルチコアマスターとして機能するように設定するか、マルチコアマスターモードを有効にしてください。
ダウンロードの有効な方式の 1 つは、コアのデバッグイメージを 1 つに結合して、マスタープロジェクトで結合されたイメージをダウンロードすることです。このシナリオでは、実行中のターゲットにアタッチするか、ダウンロードを抑制するようにパートナーを設定する必要があります。
もうひとつの方式は、マスターとパートナーを別々のバイナリイメージとしてダウンロードします。この場合、メモリ内で意図しない重複がないように注意しなければなりません。
非対称マルチコアデバッグの特別なサポートの概要は以下のとおりです。
アプリケーション全体を自動的に起動および停止するか、コアを独立して個々に実行するかを制御することができます。
IDEの各インスタンスに、接続先のコアに関するデバッグ情報が表示されます。
[コア]ウィンドウには使用可能なすべてのコアの一覧が表示され、実行の状態など各コアの情報が示されます。[マルチコア] ツールバーは、[コア]ウィンドウを補完するものです。
ブレークポイントを設定すると1つのコアのみに接続され、ブレークポイントがトリガされると、そのコアは停止します。
マルチコアデバッグの要件および制限
C-SPY シミュレータは、ほとんどのコアおよびデバイスのマルチコアデバッグをサポートします。サポートしている場合は、さらに特定の要件はありません。
ハードウェアデバッグシステムでマルチコアデバッグを使用するには、C-SPY ドライバとデバッグプローブの固有な組合せが必要です。
IAR C-SPY I-jetドライバ
IAR C-SPY CMSIS-DAPドライバ
IAR C-SPY J-Link/J-Traceドライバ(非対称マルチコア)
注記
使用するハードウェアに制限によって、トレースのサポートが制限を受けることがあります。