サードパーティIDEによるPSoC 6 MCUマルチコアデバッグ - KBA222959 - Community Translated (JA)

Version 1

    Community Translated by  NoTa_4591161        Version: **

     

    Translation - English: PSoC 6 MCU Multi-Core Debugging with Third-Party IDEs – 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()ルーチン内にブレークポイントを追加する必要があります。