次の方法で共有


パートナー アプリケーションを構築してデプロイする

このセクションでは、Azure Sphere パートナー アプリケーションをビルド、パッケージ化、デプロイする方法について説明します。

これらの手順では、 例として IntercoreComms サンプル アプリケーションを使用します。

前提 条件

開発とデバッグを有効にする

Azure Sphere デバイスでサンプル アプリケーションを構築したり、新しいアプリケーションを開発したりする前に、開発とデバッグを有効にする必要があります。 既定では、Azure Sphere デバイスは "ロック" されます。つまり、開発中のアプリケーションを PC から読み込むのは許可せず、アプリケーションのデバッグも許可しません。 デバッグ用にデバイスを準備すると、この制限が解除され、デバッグに必要なソフトウェアが読み込まれて、デバイス機能 のロックが解除されます。

リアルタイム コアでデバッグするには、 az sphere device enable-development コマンドを使用します。 このコマンドは、デバッグのために PC からアプリケーションを受け入れるようにデバイスを構成し、クラウド アプリケーションの更新を許可しない開発デバイス グループにデバイスを割り当てます。 アプリケーションの開発とデバッグ中は、クラウド アプリケーションの更新によって開発中のアプリケーションが上書きされないように、デバイスをこのグループに残す必要があります。

Windows では、デバッグ サーバーとコアの --enable-rt-core-debugging 種類ごとに必要なドライバーをデバイスに読み込むパラメーターを追加する必要があります。

  1. まだログインしていない場合は、Azure Sphere にログインします。

    az login
    
  2. PowerShell または Windows コマンド プロンプトを使用して、管理者特権でコマンド ライン インターフェイスを開きます。 パラメーターには --enable-rt-core-debugging 、デバッガー用の USB ドライバーがインストールされるため、管理者特権が必要です。

  3. 次のコマンドを入力します。

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. 管理者特権が不要になったため、コマンドの完了後にウィンドウを閉じます。 ベスト プラクティスとして、タスクを実行できる最小限の特権を常に使用する必要があります。

az sphere device enable-development コマンドが失敗した場合は、「Azure Sphere の問題のトラブルシューティング」を参照してください。

開発とデバッグを有効にする

Azure Sphere デバイスでサンプル アプリケーションを構築したり、新しいアプリケーションを開発したりする前に、開発とデバッグを有効にする必要があります。 既定では、Azure Sphere デバイスは "ロック" されます。つまり、開発中のアプリケーションを PC から読み込むのは許可せず、アプリケーションのデバッグも許可しません。 デバイスをデバッグ用に準備すると、この制限が解除され、「デバイスの機能と通信」で説明されているように、デバッグに必要なソフトウェア 読み込まれます。

リアルタイム コアでデバッグするには、 az sphere device enable-development コマンドを使用します。 このコマンドは、デバッグのために PC からアプリケーションを受け入れるようにデバイスを構成し、クラウド アプリケーションの更新を許可しない開発デバイス グループにデバイスを割り当てます。 アプリケーションの開発とデバッグ中は、クラウド アプリケーションの更新によって開発中のアプリケーションが上書きされないように、デバイスをこのグループに残す必要があります。

Windows では、デバッグ サーバーとコアの --enable-rt-core-debugging 種類ごとに必要なドライバーをデバイスに読み込むパラメーターを追加する必要があります。

  1. まだログインしていない場合は、Azure にログインします。

    az login
    
  2. PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、管理者特権でコマンド ライン インターフェイスを開きます。 パラメーターには --enable-rt-core-debugging 、デバッガー用の USB ドライバーがインストールされるため、管理者特権が必要です。

  3. 次のコマンドを入力します。

    az sphere device enable-development --enable-rt-core-debugging
    
  4. 管理者特権が不要になったため、コマンドの完了後にウィンドウを閉じます。 ベスト プラクティスとして、タスクを実行できる最小限の特権を常に使用する必要があります。

az sphere device enable-development コマンドが次のエラー メッセージで失敗した場合は、「Azure Sphere の問題のトラブルシューティング」を参照してください。

error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'az sphere device show-deployment-status'.

Visual Studio を使用してパートナー アプリを構築する

  1. デバイスが USB で PC に接続されていることを確認します。 [スタートアップ項目の設定] メニューで、[Azure Sphere App (すべてのコア)] を選択します。ここで、Azure Sphere App は最上位のプロジェクトの名前であるか、F5 キーを押します。

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

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

    [出力>の表示>] [出力の表示元: ビルド出力] のパスに注意してください。これは、PC 上の出力イメージ パッケージの場所を示します。 デプロイを作成する準備ができたら、イメージ パッケージへのパスを把握する必要があります。

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

Visual Studio Code を使用してパートナー アプリを構築する

  1. パートナー アプリケーションを含むフォルダーを開きます。 Visual Studio Code は、ワークスペース ファイルを検出し、ワークスペースを開くかどうかを確認します。 [ワークスペースを開く] を選択して、リアルタイム アプリケーションと高レベル アプリケーションの両方を一度に開きます。

  2. 2 つの CMakeLists.txt ファイルのいずれかを右クリックし、[ Build All Projects]\(すべてのプロジェクトのビルド\) を選択します。

  3. Visual Studio Code アクティビティ バーの [実行] アイコンをクリックします。

  4. 画面の左側のウィンドウの上部に表示されるプルダウン メニューで、[ Azure Sphere Apps (gdb)(ワークスペース) の起動] を選択します。

  5. F5 キーを押してプロジェクトをビルドしてデバッグします。 プロジェクトが以前にビルドされていない場合、またはファイルが変更され、再構築が必要な場合、Visual Studio Code はデバッグを開始する前にプロジェクトをビルドします。

  6. Visual Studio Code がアプリケーションをビルドし、イメージ パッケージを作成し、ボードにデプロイし、デバッグ モードで起動するまで数秒待ちます。 途中で [ 出力 ] ウィンドウに状態の更新が表示されます。

    まず、CMake は、アプリケーションをビルドする必要があるかどうかを判断します。 その場合は、フォーカスが出力ウィンドウに移動し、CMake/Build からの出力が表示されます。

    次に、イメージ パッケージをデバイスにデプロイすると、出力ウィンドウに出力が表示されます。 最後に、デバッグ コンソールはフォーカスを受け取り、gdb 出力を表示します。

アプリケーションをコンパイルしてビルドする

CLI を使用してアプリケーションをビルドするには、コンピューターで適切なコンパイル ツール、ヘッダー、ライブラリ (総称 して sysroot と呼ばれる) を見つける必要があります。 Azure Sphere SDK には複数の sysroot が付属しているため、「アプリケーション ランタイム バージョン、sysroots、Beta API」で説明されているように、アプリケーションが異なる API セットをターゲットにすることができます。 sysroots は、 Sysroots の Azure Sphere SDK インストール フォルダーにインストールされます。

CLI を使用してビルドする場合は、まずリアルタイム対応アプリケーションをビルドしてデプロイしてから、高レベルのアプリケーションをビルドしてデプロイします。

リアルタイム対応アプリケーションを構築してデプロイする

  1. リアルタイム対応アプリケーションを含むフォルダーに移動します。

  2. app_manifest.json ファイルを開き、上位レベルのアプリのコンポーネント ID が AllowedApplicationConnections 機能に表示されていることを確認します。

  3. PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。 プロジェクトビルドディレクトリに移動します。

  4. プロジェクト ビルド ディレクトリから、コマンド プロンプトで、次のパラメーターを指定して CMake を実行します。

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      CMakePresets.jsonで定義されているビルド構成プリセット名。

    • --build <cmake-path>

      CMake キャッシュを含むバイナリ ディレクトリ。 たとえば、Azure Sphere サンプルで CMake を実行する場合、ビルド コマンドは になります cmake --build out/ARM-Debug

    • <source-path>

      サンプル アプリケーションのソース ファイルを含むディレクトリのパス。 この例では、Azure Sphere サンプル リポジトリが AzSphere というディレクトリにダウンロードされました。

      CMake パラメーターはスペースで区切られます。 行継続文字 (^ for Windows コマンド ライン、\ for Linux コマンド ライン、または ' for PowerShell) は読みやすくするために使用できますが、必須ではありません。

    次の例は、IntercoreComms RTApp の CMake コマンドを示しています。

    Windows コマンド プロンプト

    cmake ^
    --preset "ARM-Debug" ^
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    
  5. プロジェクト ビルド ディレクトリから、コマンド プロンプトで Ninja を実行してアプリケーションをビルドし、イメージ パッケージ ファイルを作成します。

    ninja -C out/ARM-Debug
    

    Ninja は、結果のアプリケーションファイルと .imagepackage ファイルを指定されたディレクトリに配置します。

    次のコマンドを使用して、CMake を介して Ninja を呼び出すこともできます。

    cmake --build out/<binary-dir>
    

    CMake キャッシュを含むバイナリ ディレクトリに設定 <binary-dir> します。 たとえば、Azure Sphere サンプルで CMake を実行する場合、ビルド コマンドは になります cmake --build out/ARM-Debug

    特に CMake コマンドに変更を加えてからトラブルシューティングを行う場合は、ビルド全体を削除してやり直してください。

  6. デバイスに既にデプロイされているアプリケーションを削除します。

    az sphere device sideload delete
    
  7. プロジェクト ビルド ディレクトリから、コマンド プロンプトで、Ninja によって作成されたイメージ パッケージを読み込みます。

    az sphere device sideload deploy --image-package <path-to-imagepackage>
    

    アプリケーションが読み込まれた直後に、アプリケーションの実行が開始されます。

  8. イメージのコンポーネント ID を取得します。

    az sphere image-package show --image-package <path-to-imagepackage>
    

    コマンドは、イメージ パッケージのすべてのメタデータを返します。 アプリケーションのコンポーネント ID は、[アプリケーション イメージの種類] の [ID] セクションに表示されます。 例えば:

    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...
    

高度なアプリケーションをビルドしてデプロイする

  1. 高度なアプリケーションを含むフォルダーに移動します。

  2. app_manifest.json ファイルを開き、RTApp のコンポーネント ID が AllowedApplicationConnections 機能に表示されていることを確認します。

  3. PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。 プロジェクトビルドディレクトリに移動します。

  4. プロジェクト ビルド ディレクトリから、コマンド プロンプトで、次のパラメーターを指定して CMake を実行します。

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      CMakePresets.jsonで定義されているビルド構成プリセット名。

    • --build <cmake-path>

      CMake キャッシュを含むバイナリ ディレクトリ。 たとえば、Azure Sphere サンプルで CMake を実行する場合、ビルド コマンドは になります cmake --build out/ARM-Debug

    • <source-path>

      サンプル アプリケーションのソース ファイルを含むディレクトリのパス。 この例では、Azure Sphere サンプル リポジトリが AzSphere というディレクトリにダウンロードされました。

      CMake パラメーターはスペースで区切られます。 行継続文字 (^ for Windows コマンド ライン、\ for Linux コマンド ライン、または ' for PowerShell) は読みやすくするために使用できますが、必須ではありません。

    次の例は、IntercoreComms の高レベル アプリケーションの CMake コマンドを示しています。

    Windows コマンド プロンプト

    cmake ^
    --preset "ARM-Debug" ^
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    
  5. プロジェクト ビルド ディレクトリから、コマンド プロンプトで Ninja を実行してアプリケーションをビルドし、イメージ パッケージ ファイルを作成します。

    ninja -C out/ARM-Debug
    

    Ninja は、結果のアプリケーションファイルと .imagepackage ファイルを指定されたディレクトリに配置します。

    次のコマンドを使用して、CMake を介して Ninja を呼び出すこともできます。

    cmake --build out/<binary-dir>
    

    CMake キャッシュを含むバイナリ ディレクトリに設定 <binary-dir> します。 たとえば、Azure Sphere サンプルで CMake を実行する場合、ビルド コマンドは になります cmake --build out/ARM-Debug

    特に CMake コマンドに変更を加えてからトラブルシューティングを行う場合は、ビルド全体を削除してやり直してください。

  6. プロジェクト ビルド ディレクトリから、コマンド プロンプトで、Ninja によって作成されたイメージ パッケージを読み込みます。

    az sphere device sideload deploy --image-package <package-name>
    

    アプリケーションが読み込まれた直後に、アプリケーションの実行が開始されます。

  7. イメージのコンポーネント ID を取得します。

    az sphere image-package show --image-package <path-to-imagepackage>
    

    コマンドは、イメージ パッケージのすべてのメタデータを返します。 アプリケーションのコンポーネント ID は、[アプリケーション イメージの種類] の [ID] セクションに表示されます。 例えば:

      "ComponentId": "<component-ID>",
    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...