次の方法で共有


パートナー アプリケーションを作成する

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

パートナー アプリケーションの新しいペアを作成する最も簡単な方法は、最上位レベルのディレクトリを作成して、高レベルとリアルタイムの両方に対応するアプリケーションを含め、次に高レベルおよびリアルタイム対応アプリを作成することです。

高度なアプリを作成する

高度なアプリケーションを作成するには、Visual Studio Code Azure Sphere 拡張機能の HLCore 空白テンプレートから開始し、次の手順に従って構成をプロジェクトに合わせて調整します。

  1. Visual Studio Code を起動します。 View>コマンド パレットを選択し、「Azure Sphere: Generate New Project」と入力します。

    Visual Studio コードのコマンド バー

  2. [テンプレート] メニューから [HLCore Blank] を選択します。

    テンプレート名を含むポップアップ メニュー

  3. その後、Visual Studio Code にエクスプローラー ウィンドウが表示されます。 空のアプリケーションを配置するフォルダーに移動し (または、[新しいフォルダー] を選択して、新しい最上位レベルのパートナー プロジェクト ディレクトリを作成します)、プロジェクトの名前 (NewHLApp など) を指定します。 Visual Studio Code によって、選択した場所に NewHLApp フォルダーが作成され、空のアプリケーションのビルド ファイルが生成されます。 CMake からのメッセージが表示されます。

  4. CMakeLists.txt ファイルを開き、使用しているハードウェアの定義を含むフォルダーを指定します。 既定では、HLCore Blank アプリケーションにはハードウェア定義が含まれています。 サンプル ハードウェア定義は Azure Sphere Samples リポジトリにあります。または、Hardware の定義で説明されているように作成することもできます。

    Seeed Azure Sphere MT3620 Development Kit のサンプル ハードウェア定義を追加する方法を次に示します。

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "sample_appliance.json")

    この行は、 azsphere_target_add_image_packageを開始する最後のコマンドの前に挿入する必要があります。

また、次のいずれかの高レベルの Azure Sphere サンプルから新しい高レベル アプリケーションを作成することもできます。

  1. まだ行っていない場合は、サンプル リポジトリを複製します。 高度なアプリケーション フォルダーの 1 つをコピーし、プロジェクトの名前を変更します。

  2. CMakeLists.txt ファイルで、プロジェクトの名前を新しいフォルダーの名前に変更します。 次に例を示します。

    PROJECT(NewHLApp C)

RTApp を作成する

新しいリアルタイム アプリケーションを作成するには、Visual Studio Code Azure Sphere 拡張機能の RTCore 空白テンプレートから開始し、次の手順に従って構成をプロジェクトに合わせて調整します。

  1. Visual Studio Code を起動します。 View>コマンド パレットを選択し、「Azure Sphere: Generate New Project」と入力します。

    Visual Studio コードのコマンド バー

  2. [テンプレート] メニューから [RTCore Blank] を選択します。

    テンプレート名を含むポップアップ メニュー

  3. その後、Visual Studio Code にエクスプローラー ウィンドウが表示されます。 高度なアプリケーション フォルダーを含むフォルダーに移動し、プロジェクトの名前 (NewRTApp など) を指定します。 Visual Studio Code によって、選択した場所に NewRTApp フォルダーが作成され、空のアプリケーションのビルド ファイルが生成されます。 CMake からのメッセージが表示されます。

また、リアルタイム対応の任意の Azure Sphere サンプルから、新しいリアルタイム対応アプリケーションを作成することもできます。

  1. まだ行っていない場合は、サンプル リポジトリを複製します。 高度なアプリケーション フォルダーの 1 つをコピーし、プロジェクトの名前を変更します。

  2. CMakeLists.txt ファイルで、プロジェクトの名前を新しいフォルダーの名前に変更します。 次に例を示します。

    PROJECT(NewRTApp C)

パートナー アプリ開発用にワークスペースを構成する

高度なアプリケーションとリアルタイム対応アプリケーションを効果的に開発に参加させるために、次のように 2 つのアプリケーションを 1 つのマルチルート ワークスペースに結合します。

  1. Visual Studio Code で高度なアプリケーション フォルダーを開きます。

  2. File>ワークスペースにフォルダーを追加を選択し、リアルタイム対応のアプリケーション フォルダーを選択します。

  3. File>Save Workspace As... を選択し、リアルタイム対応アプリケーションと高度なアプリケーションの両方を含むフォルダーにファイルを保存します。

  4. テキスト エディターでワークスペース ファイルを開き、 "settings" 行の直後に次の起動情報を追加します。

    "launch": {
        "configurations": [{
            "name": "Launch Azure Sphere Apps (All Cores)",
            "type": "azurespheredbg",
            "request": "launch",
            "args": [],
            "stopAtEntry": false,
            "environment": [],
            "externalConsole": true,
            "partnerComponents": [],
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }],
        "compounds": []
    }

マルチルート ワークスペースの詳細については、 Visual Studio Code のドキュメント を参照してください。

高度なアプリを作成する

新しい高度なアプリケーションを作成するには、Visual Studio Azure Sphere 拡張機能の HLCore 空白テンプレートから開始し、次の手順に従って構成をプロジェクトに合わせて調整します。

  1. Visual Studio を起動し、 [新しいプロジェクトの作成] を選択します。

  2. テンプレートの検索というラベルの付いた検索ボックスに「Azure Sphere」と入力します。 返された一覧から Azure Sphere HLCore Blank を選択し、次 選択

  3. プロジェクト名 (NewHLApp など)、プロジェクト ファイルの場所、ソリューション名 (プロジェクト名と同じ) を指定し、 Createを選択します。 Visual Studio によって、選択した場所に NewHLpp フォルダーが作成され、空のアプリケーションのビルド ファイルが生成されます。 CMake からのメッセージが表示されます。

  4. CMakeLists.txt ファイルを開き、使用しているハードウェアの定義を含むフォルダーを指定します。 既定では、HL 空白アプリケーションにはハードウェア定義が含まれています。 サンプル ハードウェア定義は Azure Sphere Samples リポジトリにあります。または、Hardware の定義で説明されているように作成することもできます。

    Seeed Azure Sphere MT3620 Development Kit のサンプル ハードウェア定義を追加する方法を次に示します。

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "sample_appliance.json")

    この行は、 azsphere_target_add_image_packageを開始する最後のコマンドの前に挿入する必要があります。

また、次のいずれかの高レベルの Azure Sphere サンプルから新しい高レベル アプリケーションを作成することもできます。

  1. まだ行っていない場合は、サンプル リポジトリを複製します。 高度なアプリケーション フォルダーの 1 つをコピーし、プロジェクトの名前を変更します。

  2. CMakeLists.txt ファイルで、プロジェクトの名前を新しいフォルダーの名前に変更します。 次に例を示します。

    PROJECT(NewHLApp C)

RTApp を作成する

新しいリアルタイム対応アプリケーションを作成するには、Visual Studio Azure Sphere 拡張機能の RTCore 空白テンプレートから開始し、次の手順に従って構成をプロジェクトに合わせて調整します。

  1. Visual Studio を起動し、 [新しいプロジェクトの作成] を選択します。

  2. テンプレートの検索というラベルの付いた検索ボックスに「Azure Sphere」と入力します。 返された一覧から Azure Sphere RTCore Blank を選択し、 Next を選択します。

  3. プロジェクト名 (NewRTApp など)、プロジェクト ファイルの場所、および高度なアプリケーションに使用したソリューション名を指定し、 Createを選択します。 Visual Studio によって、選択した場所に NewRTApp フォルダーが作成され、空のアプリケーションのビルド ファイルが生成されます。 CMake からのメッセージが表示されます。

また、リアルタイム対応の任意の Azure Sphere サンプルから、新しいリアルタイム対応アプリケーションを作成することもできます。

  1. まだ行っていない場合は、サンプル リポジトリを複製します。 リアルタイム対応アプリケーション フォルダーの 1 つをコピーし、プロジェクトの名前を変更します。

  2. CMakeLists.txt ファイルで、プロジェクトの名前を新しいフォルダーの名前に変更します。 次に例を示します。

    PROJECT(NewRTApp C)

最上位レベルの Visual Studio 起動ファイルを作成する

パートナー アプリケーションを同時に操作するには、Visual Studio で複数のコアにデバッグできるようにする必要があります。 これを有効にするには、2 つのパートナー アプリケーション フォルダーを含む最上位フォルダーにlaunch.vs.json ファイルを作成します。 このファイルの内容は次のようになります。

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "azurespheredbg",
      "name": "Azure Sphere Apps (All Cores)",
      "project": "PartnerAppsHL/CMakeLists.txt",
      "DebugBuildStepBuildAll": "true",
      "workingDirectory": "${workspaceRoot}",
      "applicationPath": "${debugInfo.target}",
      "imagePath": "${debugInfo.targetImage}",
      "targetCore": "AnyCore",
      "partnerComponents": [ "0cc81b35-08dd-4d65-b318-5fa73a4ff6b1", "a9d25f0a-807e-4cb9-80e8-80fee5a1bcb4" ]
    }
  ]
}

"project"行には、高レベル アプリケーションのCMakeLists.txt ファイルへの相対パスが含まれている必要があり、"partnerComponents"行には 2 つのパートナー アプリケーションのコンポーネント ID が必要です。

この最上位レベルのlaunch.vs.json ファイルを作成したら、最上位フォルダーで Visual Studio を開くと、[スタートアップ項目の選択]メニューに [Azure Sphere Apps (すべてのコア)]オプションが表示されます。

CMakeWorkspaceSettings.json ファイルを作成する

Visual Studio 2022 バージョン 17.1 以降を使用していて、 IntercoreComms サンプルなど、複数のルートを持つプロジェクトがある場合プロジェクトの最上位フォルダーにCMakeWorkspaceSettings.json ファイルを追加する必要があります。 ファイルには 2 つのエントリがあります。1 つは CMake ビルドが有効であることを指定し、1 つは複数のルートへのパスを含みます。 たとえば、IntercoreComms サンプルの場合、CMakeWorkspaceSettings.jsonには次の内容があります。

{
  "enableCMake": true,
  "sourceDirectory": [ "IntercoreComms_HighLevelApp", "IntercoreComms_RTApp_MT3620_BareMetal" ]
}

パスは、CMakeWorkspaceSettings.json ファイルを含むフォルダーに対して相対的に指定されます。

高度なアプリを作成する

新しい高度なアプリケーションを作成するには、次のいずれかの高レベルの Azure Sphere サンプルから始めます。

  1. まだ行っていない場合は、サンプル リポジトリを複製します。 高度なアプリケーション フォルダーの 1 つをコピーし、プロジェクトの名前を変更します。

  2. CMakeLists.txt ファイルで、プロジェクトの名前を新しいフォルダーの名前に変更します。 次に例を示します。

    PROJECT(NewHLApp C)

RTApp を作成する

新しいリアルタイム対応アプリケーションを作成する最も簡単な方法は、HelloWorld_RTApp_MT3620_BareMetal サンプルから始めて、プロジェクトの構成を次の手順に従って調整することです。

  1. まだ行っていない場合は、サンプル リポジトリを複製します。 HelloWorld_RTApp_MT3620_BareMetal フォルダーをコピーし、自分のプロジェクトに合わせて名前を変更します。

  2. CMakeLists.txt ファイルで、プロジェクトの名前を新しいフォルダーの名前に変更します。 次に例を示します。

    PROJECT(NewRTApp C)

Azure Sphere アプリケーションの基本的なファイル構造

アプリケーションの作成方法に関係なく、すべての Azure Sphere アプリケーションは次のコア ファイルを共有します。

  • 1 つ以上のファイル内のアプリケーション ソース コード。 現時点では、C 言語のソース コードのみがサポートされています。
  • CMake ビルド ファイル。 CMakeLists.txtが必要です。 CMake と ninja ライトウェイト ビルド ユーティリティは、Azure Sphere アプリケーションのビルド プロセスを制御するために使用されます。
  • アプリケーションで使用できる機能を記述する app-manifest ファイル。

高レベルのアプリケーションには、通常、他に少なくとも 3 つのファイルがあります。

  • さまざまな Azure Sphere API のバージョン レベルを指定する applibs-versions.h ファイル
  • コード内のハードウェア コンポーネントを参照する便利な方法を提供する 2 つのハードウェア定義ファイル (JSON 形式の編集可能なバージョンと、そこから生成された C 言語インクルード ファイル)。 一貫性のあるハードウェア定義ファイルのセットを使用すると、ハードウェアに依存しないソース コードを記述し、CMakeLists.txt ファイル内の適切なハードウェア定義ファイルを再ターゲットするだけで、特定のハードウェアのアプリケーション イメージをビルドできます。

リアルタイム対応アプリケーションは、少なくとも 1 つの他のファイル (linker.ld ファイル) を追加して、アプリケーションのさまざまなコンポーネントをリアルタイム コアに読み込む場所を正確に指定します。

高度なアプリ コードを記述する

  1. Azure Sphere の高度なアプリ サンプルをガイドとして使用して、高度なアプリケーション コードを記述します。 次のトピックでは、特定の実装シナリオについて説明します。
  2. CMakeLists.txt ファイルで:
    • Azure Sphere SDK ツールのリビジョンを指定する
    • Target API Set の指定
    • ターゲット ハードウェアを指定する
  3. app_manifest.json ファイルで:
    • Name をプロジェクト名に設定します。
    • ハードウェア リソースや接続など、コードで必要なアプリケーション固有の機能を追加します。 高度なアプリが RTApp と通信する場合は、高度なアプリケーションのコンポーネント ID を AllowedApplicationConnections 機能に追加します。
  1. RTApp を高度なパートナー アプリと共にデプロイする場合は、launch.vs.json ファイル (Visual Studio) または .vscode/launch.json (Visual Studio Code) ファイルの configurations セクションの partnerComponents フィールドに、パートナーのコンポーネント ID を追加します。

    "partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

RTApp コードを記述する

  1. Azure Sphere RTApp サンプルをガイドとして使用して、RTApp コードを記述します。 次のトピックでは、特定の実装シナリオについて説明します。
  2. app_manifest.json ファイルで:
    • Name をプロジェクト名に設定します。
    • ApplicationType"RealTimeCapable"に設定する
    • ハードウェア リソースや接続など、コードで必要なアプリケーション固有の機能を追加します。 RTApp で高度なアプリと通信する場合は、高度なアプリケーションのコンポーネント ID を AllowedApplicationConnections 機能に追加します。
  1. RTApp を高度なパートナー アプリと共にデプロイする場合は、launch.vs.json ファイル (Visual Studio) または .vscode/launch.json (Visual Studio Code) ファイルの configurations セクションの partnerComponents フィールドに、パートナーのコンポーネント ID を追加します。

    "partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

関連項目

パートナー アプリケーションを構築します。

パートナー アプリケーションをデバッグします。