次の方法で共有


リアルタイム対応アプリケーションをデバッグする

RTApps は、Azure Sphere SDK と共にインストールされる OpenOCD と、ARM GNU Embedded Toolchain の一部としてインストールされている GDB のバージョンを使用してデバッグされます。

Visual Studio を使用して RTApp をデバッグする

  1. デバイスが USB で PC に接続されていることを確認します。 [ スタートアップ項目の設定 ] メニューで、[ Azure Sphere App (RT Core)] を選択します。 ここで、Azure Sphere App は現在のリアルタイム対応アプリケーションの名前であるか 、F5 キーを押します。

    リモート GDB デバッガー ボタン

  2. プロジェクトのビルドを求めるメッセージが表示されたら、[ はい] を選択します。 Visual Studio は、リアルタイム対応アプリケーションをコンパイルし、イメージ パッケージを作成し、ボードに サイドロード してデバッグ モードで起動します。 サイドローディング とは、クラウド経由で配信されるのではなく、有線接続を介してアプリケーションが PC から直接配信されることを意味します。

    [出力>の表示>] [出力の表示] 出力のイメージ ID に注意してください。ビルド出力 デプロイを作成する準備ができたら、イメージ パッケージへのパスを知る必要があります。

  3. 既定では、[ 出力 ] ウィンドウにデバイス出力からの出力 が表示されます。 デバッガーからメッセージを表示するには、[出力の表示元] ドロップダウン メニューから [デバッグ] を選択します。 また、プログラムの逆アセンブリ、レジスタ、またはメモリを [デバッグ>] Windows メニューから調べることもできます。

Visual Studio は、GDB サーバーと OpenOCD の間の接続を設定して、標準の Visual Studio デバッグ インターフェイス (ブレークポイントの場合は F5、F6、F9 など) を RTApp 上で使用できるように、高レベル アプリと同じ方法で設定します。

C ソース コードのブレークポイントで停止している間、現在のアドレス、現在のコマンドのアセンブラーニーモニック、関連するレジスタや実行中のソース コード コマンドなどの情報を表示する 逆アセンブル ウィンドウ を開くことができます。

[逆アセンブリ] ウィンドウを開くには:

  1. Visual Studio でブレークポイントを含む C コード ソース ファイルが開かれていることを確認します。
  2. [Windows>逆アセンブリのデバッグ]> を選択するか、Alt キーを押しながら 8 キーを押します。

Visual Studio Code を使用して RTApp をデバッグする

Visual Studio Code は、 F5 キーを押すか、左側のバーのデバッグ ビューからデバッグ コマンドを実行することでデバッグされます。 サンプルでは、.vscode/launch.json が既に存在するため、デバッグはすぐに開始されます。 新しいアプリでは、デバッグではまず、これが HLApp か RTApp かを確認し、回答から .vscode/launch.json を作成します。 その後、デバッグが有効になります。

C ソース コードのブレークポイントで停止しながら、現在のアドレス、生の 16 進データ、現在のコマンドのアセンブラーニーモニック、関連するレジスタや実行されているソース コード コマンドなどの情報を示す逆アセンブル ビューを開くことができます。

逆アセンブル ビューを開くには:

  1. ブレークポイントを含む C コード ソース ファイルが Visual Studio Code エディターで開かれていることを確認します。
  2. エディター ウィンドウで右クリックし、[逆アセンブリ ビューを開く] を選択するか、[コマンド パレット>の表示>] [逆アセンブリ ビューを開く] を選択します。

CLI を使用して RTApp をデバッグする

  1. デバッグのためにアプリケーションを起動します。

    az sphere device app start --component-id <component id>
    

    このコマンドは、アプリケーションが実行されているコアを返します。

  2. アプリケーションがビルドされた sysroot の Openocd フォルダーに移動します。 このクイック スタートでは、sysroot は 5 + Beta2004 です。 sysroots は、Azure Sphere SDK のインストール フォルダーにインストールされます。 たとえば、Windows では、フォルダーは既定で Linux の と /opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocdC:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\5+Beta2004\tools\openocd インストールされます。

  3. 次の例に示すようにを実行 openocd します。 この例では、アプリがコア 0 で実行されていることを前提としています。 アプリがコア 1 で実行されている場合は、"targets io0" を "targets io1" に置き換えます。

    openocd -f mt3620-rdb-ftdi.cfg -f mt3620-io0.cfg -c "gdb_memory_map disable" -c "gdb_breakpoint_override hard" -c init -c "targets io0" -c halt -c "targets"
    
  4. PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。

  5. アプリケーション .out ファイルを含むフォルダーに移動し、ARM GNU Embedded Toolchain の一部である を開始 arm-none-eabi-gdbします。

    Windows コマンド プロンプト

    "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
    
  6. OpenOCD サーバーは、:4444 で GDB サーバー インターフェイスを提供します。 デバッグのターゲットを設定します。

    target remote :4444

  7. 選択した gdb コマンドを実行します。

パートナー アプリを使用して開発する

Azure Sphere デバイスにアプリケーションを読み込むと、Azure Sphere デプロイ ツールによって既定ですべての既存のアプリケーションが削除されます。 相互に通信するアプリケーションを開発するときにこの問題が発生しないようにするには、アプリケーションを パートナーとしてマークする必要があります。 いずれかのアプリケーションをデプロイしても、そのパートナーは削除されません。 詳細については、「 アプリケーションをパートナーとしてマークする 」を参照してください。

トラブルシューティング

問題が発生した場合は、「 リアルタイム対応アプリケーションのトラブルシューティング」を参照してください。