パートナー アプリケーションの構築と展開
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
このセクションでは、Azure Sphere パートナー アプリケーションをビルド、パッケージ化、デプロイする方法について説明します。
これらの手順では、例として IntercoreComms サンプル アプリケーションを使用します。
前提条件
- Azure Sphere デバイスをコンピューターに接続する
- Azure Sphere のインストール
- Visual Studio Code または CLI を使用している場合は GNU Arm Embedded ツールチェーンをインストールします。
- 専用 UART からの出力を表示するようにハードウェアを設定 まだ行っていない場合
開発とデバッグを有効にする
Azure Sphere デバイスでサンプル アプリケーションをビルドしたり、Azure Sphere デバイス用の新しいアプリケーションを開発したりするには、その前に、開発とデバッグを有効にする必要があります。 既定では、Azure Sphere デバイスは "ロックされています"。つまり、開発中のアプリケーションを PC から読み込むことはできず、アプリケーションのデバッグは許可されません。 デバッグ用にデバイスを準備すると、この制限がなくなり、デバッグに必要なソフトウェアが読み込まれ、「デバイス機能と通信」で説明されているように、デバイスの機能がロック解除されます。
リアルタイム コアでデバッグするには、 azsphere device enable-development コマンドを使用します。 このコマンドは、デバッグのために PC からのアプリケーションを受け入れるようにデバイスを構成し、クラウド アプリケーションの更新を許可しない開発デバイス グループにデバイスを割り当てます。 アプリケーションの開発およびデバッグ中は、クラウド アプリケーション更新によって開発中のアプリケーションが上書きされないように、デバイスをこのグループに残しておく必要があります。
Windows では、デバッグ サーバーとコアの種類ごとに必要なドライバーをデバイスに読み込む --enable-rt-core-debugging
パラメーターを追加する必要があります。
まだログインしていない場合は、Azure Sphere にログインします。
azsphere login
管理者特権で PowerShell または Windows コマンド プロンプトを使用して、コマンド ライン インターフェイスを開きます。
--enable-rt-core-debugging
パラメーターには、デバッガー用の USB ドライバーがインストールされるため、管理者特権が必要です。次のコマンドを入力します。
azsphere device enable-development --enable-rt-core-debugging
管理者特権はもう必要ないので、コマンドが完了したらウィンドウを閉じます。 ベスト プラクティスとして、常に、タスクを実行できる最も低い特権を使用する必要があります。
azsphere device enable-development コマンドが失敗した場合は、 Azure Sphere の問題のトラブルシューティングを参照してください。
開発とデバッグを有効にする
Azure Sphere デバイスでサンプル アプリケーションをビルドしたり、Azure Sphere デバイス用の新しいアプリケーションを開発したりするには、その前に、開発とデバッグを有効にする必要があります。 既定では、Azure Sphere デバイスは "ロックされています"。つまり、開発中のアプリケーションを PC から読み込むことはできず、アプリケーションのデバッグは許可されません。 デバッグ用にデバイスを準備すると、この制限がなくなり、デバッグに必要なソフトウェアが読み込まれ、「デバイス機能と通信」で説明されているように、デバイスの機能がロック解除されます。
リアルタイム コアでデバッグするには、 azsphere device enable-development コマンドを使用します。 このコマンドは、デバッグのために PC からのアプリケーションを受け入れるようにデバイスを構成し、クラウド アプリケーションの更新を許可しない開発デバイス グループにデバイスを割り当てます。 アプリケーションの開発およびデバッグ中は、クラウド アプリケーション更新によって開発中のアプリケーションが上書きされないように、デバイスをこのグループに残しておく必要があります。
Windows では、デバッグ サーバーとコアの種類ごとに必要なドライバーをデバイスに読み込む --enable-rt-core-debugging
パラメーターを追加する必要があります。
まだログインしていない場合は、Azure Sphere にログインします。
azsphere login
管理者特権で PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。
--enable-rt-core-debugging
パラメーターには、デバッガー用の USB ドライバーがインストールされるため、管理者特権が必要です。次のコマンドを入力します。
azsphere device enable-development --enable-rt-core-debugging
管理者特権はもう必要ないので、コマンドが完了したらウィンドウを閉じます。 ベスト プラクティスとして、常に、タスクを実行できる最も低い特権を使用する必要があります。
azsphere 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 'azsphere device show-deployment-status'.
Visual Studio を使用してパートナー アプリを構築する
使用するデバイスが USB で PC に接続されていることを確認します。 [ Set スタートアップ項目 メニューで、[ Azure Sphere App (すべてのコア)] を選択します。ここで、 Azure Sphere App はトップレベル プロジェクトの名前であるか、 F5 キーを押します。
プロジェクトをビルドするためのメッセージが表示されたら、[はい] を選択します。 Visual Studio は、パートナー アプリケーションをコンパイルし、イメージ パッケージを作成し、 サイドロード ボードに追加して、デバッグ モードで起動します。 サイドローディング は、クラウド経由ではなく、有線接続を介してアプリケーションが PC から直接配信されることを意味します。
View>Output>Show output from: Build 出力のパスに注意してください。これは、PC 上の出力イメージ パッケージの場所を示します。 デプロイを作成する準備ができたら、イメージ パッケージへのパスを知る必要があります。
既定では、 Output ウィンドウに Device Output からの出力が表示されます。 デバッガーからのメッセージを表示するには、[出力元] ドロップダウン メニューで [デバッグ] を選択します。 [デバッグ]>[Windows] メニューからは、プログラムの逆アセンブリ、レジスタ、またはメモリを調べることもできます。
Visual Studio Code を使用してパートナー アプリを構築する
パートナー アプリケーションを含むフォルダーを開きます。 Visual Studio Code によってワークスペース ファイルが検出され、ワークスペースを開くかどうかを確認するメッセージが表示されます。 リアルタイム アプリケーションと高度なアプリケーションの両方を一度に開くには、[ワークスペースを開く] を選択します。
2 つのCMakeLists.txtファイルのいずれかを右クリックし、[すべてのプロジェクトのビルド] 選択。
Visual Studio Code アクティビティ バーの [実行] アイコンをクリックします。
画面の左側にあるウィンドウの上部に表示されるプルダウン メニューで、[ Launch Azure Sphere Apps (gdb)(workspace)を選択します。
F5 キーを押してプロジェクトをビルドおよびデバッグします。 プロジェクトが以前にビルドされていない場合、またはファイルが変更され、再構築が必要な場合、Visual Studio Code はデバッグを開始する前にプロジェクトをビルドします。
Visual Studio Code がアプリケーションをビルドし、イメージ パッケージを作成し、ボードにデプロイして、デバッグ モードで起動するまで数秒待ちます。 途中で Output ペインに状態の更新が表示されます。
まず、CMake は、アプリケーションをビルドする必要があるかどうかを判断します。 その場合は、フォーカスが出力ウィンドウに移動し、CMake/Build からの出力が表示されます。
次に、イメージ パッケージをデバイスにデプロイするときに、azsphere からの出力が出力ウィンドウに表示されます。 最後に、デバッグ コンソールにフォーカスが移り、gdb 出力が表示されます。
アプリケーションをコンパイルしてビルドする
CLI を使用してアプリケーションをビルドするには、コンピューター上で適切なコンパイル ツール、ヘッダー、およびライブラリ (総称して sysroot) を見つける必要があります。 Azure Sphere SDK には複数の sysroot が付属しているため、「アプリケーションのランタイム バージョン、sysroot、およびベータ API」で説明されているように、アプリケーションで異なる API セットをターゲットにすることができます。 sysroot は、Azure Sphere SDK インストール フォルダーの Sysroots の下にインストールされます。
CLI を使用してビルドする場合は、まずリアルタイム対応アプリケーションをビルドしてデプロイしてから、高度なアプリケーションをビルドしてデプロイします。
リアルタイム対応アプリケーションをビルドしてデプロイする
リアルタイム対応アプリケーションが格納されているフォルダーに移動します。
app_manifest.json ファイルを開き、上位レベルのアプリのコンポーネント ID が AllowedApplicationConnections 機能に表示されていることを確認します。
PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。 プロジェクトビルドディレクトリに移動します。
プロジェクト ビルド ディレクトリから、コマンド プロンプトで、次のパラメーターを指定して 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 パラメーターはスペースで区切られます。 行継続文字 (Windows コマンド ラインの場合は ^、Linux コマンド ラインの場合は \、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"
プロジェクトビルドディレクトリから、コマンド プロンプトで Ninja を実行してアプリケーションをビルドし、イメージ パッケージ ファイルを作成します。
ninja -C out/ARM-Debug
Ninja は、結果のアプリケーション ファイルと .imagepackage ファイルを指定されたディレクトリに配置します。
次のコマンドを使用して、CMake から Ninja を呼び出すこともできます。
cmake --build out/<binary-dir>
<binary-dir>
CMake キャッシュを含むバイナリ ディレクトリに設定します。 たとえば、Azure Sphere サンプルで CMake を実行すると、ビルド コマンドがcmake --build out/ARM-Debug
されます。特に CMake コマンドを変更した後にトラブルシューティングを行う場合は、ビルド全体を削除してから、やり直してください。
デバイスに既にデプロイされているアプリケーションをすべて削除します。
azsphere device sideload delete
プロジェクト ビルド ディレクトリから、コマンド プロンプトで、Ninja によって作成されたイメージ パッケージを読み込みます。
azsphere device sideload deploy --image-package <path-to-imagepackage>
アプリケーションは、読み込まれた直後に実行が開始されます。
イメージのコンポーネント ID を取得します。
azsphere image-package show --image-package <path-to-imagepackage>
このコマンドは、イメージ パッケージのすべてのメタデータを返します。 アプリケーションのコンポーネント ID は、イメージの種類 Application の Identity セクションに表示されます。 次に例を示します。
Image package metadata: Section: Identity Image Type: Application Component ID: <component id> Image ID: <image id>
高度なアプリケーションをビルドしてデプロイする
高度なアプリケーションを含むフォルダーに移動します。
app_manifest.json ファイルを開き、RTApp のコンポーネント ID が AllowedApplicationConnections 機能に表示されていることを確認します。
PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。 プロジェクトビルドディレクトリに移動します。
プロジェクト ビルド ディレクトリから、コマンド プロンプトで、次のパラメーターを指定して 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 パラメーターはスペースで区切られます。 行継続文字 (Windows コマンド ラインの場合は ^、Linux コマンド ラインの場合は \、PowerShell の場合は ' ) は読みやすくするために使用できますが、必須ではありません。
次の例は、IntercoreComms の高度なアプリケーションの CMake コマンドを示しています。
プロジェクトビルドディレクトリから、コマンド プロンプトで Ninja を実行してアプリケーションをビルドし、イメージ パッケージ ファイルを作成します。
ninja -C out/ARM-Debug
Ninja は、結果のアプリケーション ファイルと .imagepackage ファイルを指定されたディレクトリに配置します。
次のコマンドを使用して、CMake から Ninja を呼び出すこともできます。
cmake --build out/<binary-dir>
<binary-dir>
CMake キャッシュを含むバイナリ ディレクトリに設定します。 たとえば、Azure Sphere サンプルで CMake を実行すると、ビルド コマンドがcmake --build out/ARM-Debug
されます。特に CMake コマンドを変更した後にトラブルシューティングを行う場合は、ビルド全体を削除してから、やり直してください。
プロジェクト ビルド ディレクトリから、コマンド プロンプトで、Ninja によって作成されたイメージ パッケージを読み込みます。
azsphere device sideload deploy --image-package <package-name>
アプリケーションは、読み込まれた直後に実行が開始されます。
イメージのコンポーネント ID を取得します。
azsphere image-package show --image-package <path-to-imagepackage>
このコマンドは、イメージ パッケージのすべてのメタデータを返します。 アプリケーションのコンポーネント ID は、イメージの種類 Application の Identity セクションに表示されます。 次に例を示します。
Image package metadata: Section: Identity Image Type: Application Component ID: 25025d2c-66da-4448-bae1-ac26fcdd3627 Image ID: 49d3cb5b-0300-4e1f-904d-b730c7933c3f