1 Reply Latest reply on May 7, 2020 7:07 PM by JuyoungJ_06

    Community Translation - PSoC 6 MCU Multi-Core Debugging with Third-Party IDEs – KBA222959

    NoTa_4591161

      Hi,

       

      I would like to translate KBA222959 into Japanese.

       

      Thanks,

      Kenshow


      Original KBA:

      PSoC 6 MCU Multi-Core Debugging with Third-Party IDEs – KBA222959

       

      Translated by Kenshow

      ==============================

       

      タイトル: サードパーティIDEによるPSoC 6 MCUマルチコアデバッグ – KBA222959

       

      バージョン:**

       

      質問:

      サードパーティのIDEでPSoC®6 MCUマルチコアプロジェクトをデバッグするにはどうすればよいでしょうか?

      IAR IDEについては、https://www.iar.com/support/resources/articles/multicore-debugging/の概要を参照してください

       

      Eclipse CDTマルチコアデバッグ

      現在の状態:

      マルチコアデバッグサポートが段階的にEclipse CDTに追加されていますが、いくつかの制限があります。詳細については、https//sourceware.org/gdb/wiki/MultiProcess参照してください

      これは、次のように、GDBの基本的なサポートに依存しています。

      • GDB 7.0は、リモートターゲットに実装されたマルチプロセス下位制御を基本的にサポートしていますが、すべての下位でコードを共有するシステムのデバッグにのみ使用できます。
      • GDB 7.1は、Linuxシステム(ネイティブおよびリモート)にもマルチプロセスおよびマルチ実行可能なデバッグのサポートを提供することにより、これを拡張します。これは、1つのGDBセッションで複数のプログラムをロードできることを意味します。1つのGDBセッションで複数のプロセスに「実行」または「アタッチ」し、それぞれが異なるプログラムを実行している可能性があります。または、下位とその子ツリーのすべてのforkexecを追跡します。
      • GDB 7.2は、マシンインターフェース(MI)にマルチ実行可能コントロールのサポートを追加します。
      • この動作はLinuxで開発およびテストされました。Windowsでは動作しない可能性があります
      • non-stop mode」デバッガサポートが必要で、これにより、一部のスレッドをステップ実行しながら、他のスレッドを自由に実行できます。non-stop modeに入るには、プログラムを実行またはアタッチする前に、次の一連のコマンドを使用します。
       CLIを使用している場合、ページ付けはノンストップで中断します。
      set pagination off
      最後にオンにします
      set non-stop on

      PSoC Creator™バージョン4.1および4.2は、EABI-GDB 7.1.0を含むGNUARM®5.4.1パッケージを使用。

       

      Eclipse (Neon)

      Eclipseには「launch group」を作成できる比較的新しい機能があります。これにより、他のいくつかの既存の起動をバンドルして、それらをすべて同時に開始したり、互いに遅らせたり、前任者が完了した後に開始したりできます。

      次のように、CM4コア用とCM0 +コア用の2つのプロジェクトで構成されるPSoC 6 MCUデザインのlaunch groupを作成します。

      CM4デバッグ起動の作成

      CM4起動構成は、結合されたCM4 / CM0 +イメージを組み合わせたCM4のプロジェクトにベースとされます。以下に示す「launch group」メカニズムは、2つのコアから拡張が可能です。

       

      1に示すように、[Debugger]タブでエントリを設定します。

      1

      1.png

       

      2に示すように、[Startup]タブでエントリを設定します。

      2

      2.png

      CM0pデバッグ起動の作成

      この起動構成は、CM0 +コードのみを含むCM0 +プロジェクトに基づいています。

      3に示すように、[ Debugger ]タブで次の変更を行います。

      • Connect to running targetチェックボックスオンにします
      • デバイス名CY8C6xx7_CM0p設定します
      • デフォルトのGDBポート2431変更します。

      3

      3.png

       

      4に示すように、[Setup ]タブで次の選択を解除します。

      • Initial Reset and Halt
      • Enable SWO
      • Load executable
      • Pre-run/Restart reset

       

      4

      4.png  

       

      注: JTAGを使用してCM0 +コア上の非セキュアアプリケーションをデバッグする場合は、Run/Restart commands boxに次の行も含まれている必要があります。

      set $sp = *(uint32_t*)0x10000000

      set $pc = *(uint32_t*)0x10000004

      Launch Groupの作成

      5に示すように、Launch groupを作成し、CM4CM0 +の両方のデバッグ起動をグループに追加します。

      actions」の関連付なし(2つの起動間の遅延のような)で、それらを作成します。Launch groupを開始すると、EclipseCM4構成とCM0 +構成の両方を起動します。

       

      5

      5.png  

      Eclipseを実行する

      起動すると、図6に示すように、launch group3つの個別のデバッグ起動を開始します。1つ目はlaunch group自体です。この起動を終了すると、他の2つも終了します。

      他の2つはCM4コアとCM0+コア用であり、個別に動作するため、2つのコア間でフォーカスを切り替えたり、個別にステップしたり、値を調べたりすることができます。

       

      6

      6.png  

      問題

      CM0+ main()へのエントリにブレークポイントを設定するとDebug launch configuration[Startup]タブの下部にあるチェックボックスを介して)、コアはそこで停止しません。main()内部で停止するために、main()ルーチン内にブレークポイントを追加する必要があります。

       

      ==============================

      7-May-2020

      Kenshow