Sdílet prostřednictvím


Vytváření partnerských aplikací

Důležité

Toto je dokumentace k Azure Sphere (starší verze). Azure Sphere (starší verze) se vyřazuje 27. září 2027 a uživatelé musí do této doby migrovat do Azure Sphere (integrované). K zobrazení dokumentace k Azure Sphere (integrované) použijte selektor verzí umístěný nad obsahem.

Nejjednodušší způsob, jak vytvořit novou dvojici partnerských aplikací, je vytvořit adresář nejvyšší úrovně, který bude obsahovat aplikace podporující vysokou i v reálném čase, a následně vytvářet aplikace podporující vysokou úroveň a v reálném čase.

Vytvoření aplikace vysoké úrovně

Pokud chcete vytvořit aplikaci vysoké úrovně, začněte šablonou HLCore Blank z rozšíření Visual Studio Code Azure Sphere a upravte konfiguraci projektu pomocí následujícího postupu:

  1. Spusťte Visual Studio Code. Vyberte Paletu příkazů Zobrazit>a zadejte Azure Sphere: Vygenerovat nový projekt.

    Panel příkazů v editoru Visual Studio Code

  2. V nabídce Šablony zvolte PRÁZDNÉ HLCore.

    místní nabídka s názvy šablon

  3. Visual Studio Code pak zobrazí okno Průzkumník souborů. Přejděte do složky, do které chcete umístit prázdnou aplikaci (nebo vyberte Nová složka a vytvořte nový adresář partnerského projektu nejvyšší úrovně) a zadejte název projektu, například NewHLApp. Visual Studio Code vytvoří ve vybraném umístění složku NewHLApp a vygeneruje soubory sestavení pro prázdnou aplikaci. Měli byste vidět zprávy od CMake.

  4. Otevřete soubor CMakeLists.txt a zadejte složku obsahující definice hardwaru, který používáte. Ve výchozím nastavení prázdná aplikace HLCore neobsahuje žádné definice hardwaru. Ukázkové definice hardwaru najdete v úložišti ukázek Azure Sphere nebo můžete vytvořit definici hardwaru, jak je popsáno v definicích hardwaru.

    Následující příklad ukazuje, jak přidat ukázkové definice hardwaru pro Seeed Azure Sphere MT3620 Development Kit:

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

    Tento řádek by měl být vložen před poslední příkaz začátek azsphere_target_add_image_package.

Můžete také vytvořit novou aplikaci vysoké úrovně z některé z ukázek Azure Sphere vysoké úrovně:

  1. Pokud jste to ještě neudělali, naklonujte úložiště ukázek. Zkopírujte jednu ze složek aplikací vysoké úrovně a přejmenujte ji pro svůj projekt.

  2. V souboru CMakeLists.txt změňte název projektu na název nové složky. Příklad:

    PROJECT(NewHLApp C)

Vytvoření aplikace RTApp

Pokud chcete vytvořit novou aplikaci v reálném čase, začněte s prázdnou šablonou RTCore z rozšíření Visual Studio Code Azure Sphere a upravte konfiguraci projektu pomocí následujícího postupu:

  1. Spusťte Visual Studio Code. Vyberte Paletu příkazů Zobrazit>a zadejte Azure Sphere: Vygenerovat nový projekt.

    Panel příkazů v editoru Visual Studio Code

  2. V nabídce Šablony zvolte prázdné jádro RTCore.

    místní nabídka s názvy šablon

  3. Visual Studio Code pak zobrazí okno Průzkumník souborů. Přejděte do složky obsahující složku aplikace vysoké úrovně a zadejte název projektu, například NewRTApp. Visual Studio Code vytvoří ve vybraném umístění složku NewRTApp a vygeneruje soubory sestavení pro prázdnou aplikaci. Měli byste vidět zprávy od CMake.

Můžete také vytvořit novou aplikaci schopnou v reálném čase z libovolné ukázky Azure Sphere podporující v reálném čase:

  1. Pokud jste to ještě neudělali, naklonujte úložiště ukázek. Zkopírujte jednu ze složek aplikací vysoké úrovně a přejmenujte ji pro svůj projekt.

  2. V souboru CMakeLists.txt změňte název projektu na název nové složky. Příklad:

    PROJECT(NewRTApp C)

Konfigurace pracovního prostoru pro vývoj partnerských aplikací

Pokud chcete efektivně připojit aplikaci vysoké úrovně a aplikaci podporující vývoj v reálném čase, zkombinujte své dvě aplikace do jednoho více kořenového pracovního prostoru následujícím způsobem:

  1. Otevřete složku aplikace vysoké úrovně v editoru Visual Studio Code.

  2. Vyberte Soubor>přidat složku do pracovního prostoru a pak vyberte složku aplikace podporující v reálném čase.

  3. >Vyberte Soubor Uložit pracovní prostor jako... a pak soubor uložte do složky, která obsahuje aplikace podporující v reálném čase i aplikace vysoké úrovně.

  4. Otevřete soubor pracovního prostoru v textovém editoru a přidejte následující informace o spuštění hned za "settings" řádek:

    "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": []
    }

Další informace o více kořenových pracovních prostorech najdete v dokumentaci k editoru Visual Studio Code.

Vytvoření aplikace vysoké úrovně

Pokud chcete vytvořit novou aplikaci vysoké úrovně, začněte šablonou HLCore Blank z rozšíření Visual Studio Azure Sphere a upravte konfiguraci projektu pomocí následujících kroků:

  1. Spusťte Visual Studio a vyberte Vytvořit nový projekt.

  2. Zadejte Azure Sphere vyhledávací pole s popiskem Hledat šablony. V vráceném seznamu vyberte Azure Sphere HLCore Blank a pak vyberte Další.

  3. Zadejte název projektu (například NewHLApp), umístění souboru projektu a název řešení (který může být stejný jako název projektu) a pak vyberte Vytvořit. Visual Studio vytvoří ve vybraném umístění složku NewHLpp a vygeneruje soubory sestavení pro prázdnou aplikaci. Měli byste vidět zprávy od CMake.

  4. Otevřete soubor CMakeLists.txt a zadejte složku obsahující definice hardwaru, který používáte. Ve výchozím nastavení prázdná aplikace HL neobsahuje žádné definice hardwaru. Ukázkové definice hardwaru najdete v úložišti ukázek Azure Sphere nebo můžete vytvořit definici hardwaru, jak je popsáno v definicích hardwaru.

    Následující příklad ukazuje, jak přidat ukázkové definice hardwaru pro Seeed Azure Sphere MT3620 Development Kit:

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

    Tento řádek by měl být vložen před poslední příkaz začátek azsphere_target_add_image_package.

Můžete také vytvořit novou aplikaci vysoké úrovně z některé z ukázek Azure Sphere vysoké úrovně:

  1. Pokud jste to ještě neudělali, naklonujte úložiště ukázek. Zkopírujte jednu ze složek aplikací vysoké úrovně a přejmenujte ji pro svůj projekt.

  2. V souboru CMakeLists.txt změňte název projektu na název nové složky. Příklad:

    PROJECT(NewHLApp C)

Vytvoření aplikace RTApp

Pokud chcete vytvořit novou aplikaci podporující v reálném čase, začněte šablonou RTCore Blank z rozšíření Visual Studio Azure Sphere a upravte konfiguraci projektu pomocí následujících kroků:

  1. Spusťte Visual Studio a vyberte Vytvořit nový projekt.

  2. Zadejte Azure Sphere vyhledávací pole s popiskem Hledat šablony. V vráceném seznamu vyberte Prázdnou hodnotu RTCore Azure Sphere a pak vyberte Další.

  3. Zadejte název projektu (například NewRTApp), umístění souboru projektu a název řešení, který jste použili pro aplikaci vysoké úrovně, a pak vyberte Vytvořit. Visual Studio vytvoří ve vybraném umístění složku NewRTApp a vygeneruje soubory sestavení pro prázdnou aplikaci. Měli byste vidět zprávy od CMake.

Můžete také vytvořit novou aplikaci schopnou v reálném čase z libovolné ukázky Azure Sphere podporující v reálném čase:

  1. Pokud jste to ještě neudělali, naklonujte úložiště ukázek. Zkopírujte jednu ze složek aplikací podporujících v reálném čase a přejmenujte ji pro svůj projekt.

  2. V souboru CMakeLists.txt změňte název projektu na název nové složky. Příklad:

    PROJECT(NewRTApp C)

Vytvoření spouštěcího souboru sady Visual Studio nejvyšší úrovně

Pokud chcete pracovat s partnerskými aplikacemi současně, chcete sadě Visual Studio povolit ladění do více jader. Můžete to povolit tak, že ve složce nejvyšší úrovně vytvoříte soubor launch.vs.json obsahující dvě složky partnerských aplikací. Tento soubor by měl mít obsah podobný následujícímu:

{
  "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" ]
    }
  ]
}

Řádek "project" by měl obsahovat relativní cestu k souboru CMakeLists.txt aplikace vysoké úrovně a "partnerComponents" řádek by měl obsahovat ID součástí obou partnerských aplikací.

Jakmile vytvoříte tento soubor launch.vs.json nejvyšší úrovně, můžete visual Studio otevřít ve složce nejvyšší úrovně a v nabídce Vybrat položku po spuštění se zobrazí možnost Aplikace Azure Sphere (všechna jádra).

Vytvoření souboru CMakeWorkspaceSettings.json

Pokud používáte Visual Studio 2022 verze 17.1 nebo novější a máte projekt s více kořeny, jako je ukázka IntercoreComms, budete muset do složky projektu nejvyšší úrovně přidat soubor CMakeWorkspaceSettings.json. Soubor má dvě položky, jednu pro určení, že sestavení CMake je povolené a jeden obsahující cesty k více kořenovým složkám. Například pro ukázku IntercoreComms má CMakeWorkspaceSettings.json následující obsah:

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

Cesty se zadají vzhledem ke složce obsahující CMakeWorkspaceSettings.json souboru.

Vytvoření aplikace vysoké úrovně

Pokud chcete vytvořit novou aplikaci vysoké úrovně, začněte některou z ukázek Azure Sphere vysoké úrovně:

  1. Pokud jste to ještě neudělali, naklonujte úložiště ukázek. Zkopírujte jednu ze složek aplikací vysoké úrovně a přejmenujte ji pro svůj projekt.

  2. V souboru CMakeLists.txt změňte název projektu na název nové složky. Příklad:

    PROJECT(NewHLApp C)

Vytvoření aplikace RTApp

Nejjednodušší způsob, jak vytvořit novou aplikaci podporující v reálném čase, je začít s ukázkou HelloWorld_RTApp_MT3620_BareMetal a upravit konfiguraci projektu pomocí následujícího postupu:

  1. Pokud jste to ještě neudělali, naklonujte úložiště ukázek. Zkopírujte složku HelloWorld_RTApp_MT3620_BareMetal a přejmenujte ji pro svůj projekt.

  2. V souboru CMakeLists.txt změňte název projektu na název nové složky. Příklad:

    PROJECT(NewRTApp C)

Základní struktura souborů aplikací Azure Sphere

Bez ohledu na to, jak aplikaci vytvoříte, sdílejí všechny aplikace Azure Sphere následující základní soubory:

  • Zdrojový kód aplikace v jednom nebo více souborech. V současné době se podporuje pouze zdrojový kód jazyka C.
  • Soubory sestavení CMake CMakeLists.txt se vyžaduje. CMake společně s ninja lightweight build utility slouží k řízení procesu sestavení aplikace Azure Sphere.
  • Soubor manifestu aplikace popisující možnosti, které jsou pro aplikaci k dispozici.

Aplikace vysoké úrovně mají obvykle alespoň tři další soubory:

  • Soubor applibs-versions.h pro určení úrovní verzí různých rozhraní API Azure Sphere
  • Dva soubory definice hardwaru (upravitelná verze ve formátu JSON a jazyk C obsahují soubor vygenerovaný z něj), které poskytují pohodlný způsob, jak odkazovat na hardwarové komponenty v kódu. S konzistentní sadou definičních souborů hardwaru můžete napsat zdrojový kód nezávislý na hardwaru a pak vytvářet image aplikací pro konkrétní hardware jednoduše opětovným cílením na příslušný soubor definice hardwaru ve vašem CMakeLists.txt souboru.

Aplikace podporující v reálném čase přidávají aspoň jeden další soubor: soubor linker.ld, který přesně určuje, kde se mají načíst různé komponenty aplikace v jádru v reálném čase.

Psaní kódu aplikace vysoké úrovně

  1. Napište kód aplikace vysoké úrovně pomocí ukázek aplikací vysoké úrovně Azure Sphere jako vodítka. Následující témata popisují konkrétní scénáře implementace:
  2. V souboru CMakeLists.txt:
    • Určení revize nástrojů sady Azure Sphere SDK
    • Určení sady cílových rozhraní API
    • Určení cílového hardwaru
  3. V souboru app_manifest.json:
    • Name nastavte na název svého projektu.
    • Přidejte všechny funkce specifické pro aplikaci, které váš kód vyžaduje, například hardwarové prostředky nebo připojení. Pokud aplikace vysoké úrovně komunikuje s aplikací RTApp, přidejte do AllowedApplicationConnections této funkce ID komponenty aplikace vysoké úrovně.
  1. Pokud chcete nasadit rtApp společně s aplikací partnera vysoké úrovně, přidejte ID komponenty partnera do pole PartnerComponents oddílu konfigurace v souboru launch.vs.json (Visual Studio) nebo .vscode/launch.json (Visual Studio Code):

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

Psaní kódu RTApp

  1. Napište svůj kód RTApp pomocí ukázek Azure Sphere RTApp jako vodítka. Následující témata popisují konkrétní scénáře implementace:
  2. V souboru app_manifest.json:
    • V části Name nastavte název vašeho projektu.
    • Nastavte ApplicationType na hodnotu "RealTimeCapable".
    • Přidejte všechny funkce specifické pro aplikaci, které váš kód vyžaduje, například hardwarové prostředky nebo připojení. Pokud rtApp komunikuje s aplikací vysoké úrovně, přidejte do AllowedApplicationConnections této funkce ID komponenty aplikace vysoké úrovně.
  1. Pokud chcete nasadit rtApp společně s aplikací partnera vysoké úrovně, přidejte ID komponenty partnera do pole PartnerComponents oddílu konfigurace v souboru launch.vs.json (Visual Studio) nebo .vscode/launch.json (Visual Studio Code):

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

Viz také

Vytváření partnerských aplikací

Ladění partnerských aplikací