Sdílet prostřednictvím


Vytváření partnerských aplikací

Nejjednodušší způsob, jak vytvořit novou dvojici partnerských aplikací, je vytvořit adresář nejvyšší úrovně, který bude obsahovat aplikace podporující vysokou úroveň i aplikace podporující real-time, a pak zase vytvořit aplikace na vysoké úrovni a aplikace podporující real-time.

Vytvoření aplikace vysoké úrovně

Pokud chcete vytvořit aplikaci vysoké úrovně, začněte s prázdnou šablonou HLCore z rozšíření Azure Sphere pro Visual Studio Code a upravte konfiguraci projektu pomocí těchto kroků:

  1. Spusťte Visual Studio Code. Vyberte Zobrazit>paletu příkazů a zadejte Azure Sphere: Generate New Project (Azure Sphere: Generate New Project).

    Panel příkazů v editoru Visual Studio Code

  2. V nabídce Šablony zvolte HLCore Blank.

    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, kam 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ří složku NewHLApp ve vybraném umístění a vygeneruje soubory sestavení pro prázdnou aplikaci. Měly by se zobrazit zprávy z CMake.

  4. Otevřete soubor CMakeLists.txt a zadejte složku obsahující definice hardwaru, který používáte. Ve výchozím nastavení aplikace HLCore Blank neobsahuje žádné definice hardwaru. Ukázkové definice hardwaru najdete v úložišti ukázek Azure Sphere nebo si je můžete vytvořit podle popisu v tématu Definice hardwaru.

    Následuje postup přidání ukázkových definic hardwaru pro sadu 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, který začíná azsphere_target_add_image_package.

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

  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í Azure Sphere pro Visual Studio Code a upravte konfiguraci projektu pomocí těchto kroků:

  1. Spusťte Visual Studio Code. Vyberte Zobrazit>paletu příkazů a zadejte Azure Sphere: Generate New Project (Azure Sphere: Generate New Project).

    Panel příkazů v editoru Visual Studio Code

  2. V nabídce Šablony zvolte RTCore Prázdné.

    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ří složku NewRTApp ve vybraném umístění a vygeneruje soubory sestavení pro prázdnou aplikaci. Měly by se zobrazit zprávy z CMake.

Můžete také vytvořit novou aplikaci podporující real-time z libovolné ukázky Azure Sphere s podporou real-time:

  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ě spojit aplikaci vysoké úrovně a aplikaci podporující vývoj v reálném čase, zkombinujte tyto dvě aplikace do jednoho pracovního prostoru s více kořeny následujícím způsobem:

  1. Otevřete složku aplikací 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 Uložit pracovní>prostor jako... a pak soubor uložte do složky, která obsahuje aplikace podporující real-time i aplikace vysoké úrovně.

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

    "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 pracovních prostorech s více kořeny 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í Azure Sphere pro Visual Studio a upravte konfiguraci projektu pomocí těchto kroků:

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

  2. Do vyhledávacího pole s popiskem Hledat šablony zadejteAzure Sphere. Z vráceného 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ří složku NewHLpp ve vybraném umístění a vygeneruje soubory sestavení pro prázdnou aplikaci. Měly by se zobrazit zprávy z 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 si je můžete vytvořit podle popisu v tématu Definice hardwaru.

    Následuje postup přidání ukázkových definic hardwaru pro sadu 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, který začíná azsphere_target_add_image_package.

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

  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 s podporou v reálném čase, začněte se šablonou RTCore Blank z rozšíření Visual Studio Azure Sphere a upravte konfiguraci projektu pomocí těchto kroků:

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

  2. Do vyhledávacího pole s popiskem Hledat šablony zadejteAzure Sphere. Z vráceného seznamu vyberte Azure Sphere RTCore Blank 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ří složku NewRTApp ve vybraném umístění a vygeneruje soubory sestavení pro prázdnou aplikaci. Měly by se zobrazit zprávy z CMake.

Můžete také vytvořit novou aplikaci podporující real-time z libovolné ukázky Azure Sphere s podporou real-time:

  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 ho 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í s více jádry. Můžete to povolit vytvořením souboru launch.vs.json ve složce nejvyšší úrovně, která obsahuje 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 komponent obou partnerských aplikací.

Po vytvoření tohoto souboru 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 Azure Sphere Apps (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 například ukázka IntercoreComms, budete muset do složky projektu nejvyšší úrovně přidat soubor CMakeWorkspaceSettings.json. Soubor obsahuje dvě položky, jednu, která určuje, že je povolené sestavení CMake, a druhá obsahuje cesty k více kořenovým složkám. Například pro ukázku IntercoreComms má soubor CMakeWorkspaceSettings.json následující obsah:

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

Cesty jsou zadané vzhledem ke složce obsahující soubor CMakeWorkspaceSettings.json.

Vytvoření aplikace vysoké úrovně

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

  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í real-time, je začít s ukázkou HelloWorld_RTApp_MT3620_BareMetal a upravit konfiguraci projektu pomocí těchto kroků:

  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, všechny aplikace Azure Sphere sdílejí 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 je povinný. CMake společně s odlehčeným nástrojem pro sestavení ninja slouží k řízení procesu sestavení aplikace Azure Sphere.
  • Soubor manifestu aplikace popisující možnosti dostupné pro aplikaci.

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

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

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

Psaní kódu aplikace vysoké úrovně

  1. Napište kód aplikace vysoké úrovně pomocí ukázek aplikací Azure Sphere vysoké úrovně jako vodítka. Následující témata popisují konkrétní scénáře implementace:
  2. V souboruCMakeLists.txt:
    • Určení revize nástrojů sady Azure Sphere SDK
    • Určení cílové sady rozhraní API
    • Určení cílového hardwaru
  3. V souboru app_manifest.json:
    • Nastavte Name na název 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 funkce ID komponenty aplikace vysoké úrovně.
  1. Pokud chcete nasadit RTApp společně s partnerskou aplikací vysoké úrovně, přidejte ID komponenty partnera do pole PartnerComponents v části konfigurace 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 kód RTApp s využitím ukázek Azure Sphere RTApp jako příruček. Následující témata popisují konkrétní scénáře implementace:
  2. V souboru app_manifest.json:
    • Nastavte Name na název projektu.
    • Nastavit ApplicationType na "RealTimeCapable"
    • Přidejte všechny funkce specifické pro aplikaci, které váš kód vyžaduje, například hardwarové prostředky nebo připojení. Pokud aplikace RTApp komunikuje s aplikací vysoké úrovně, přidejte do AllowedApplicationConnections funkce ID komponenty aplikace vysoké úrovně.
  1. Pokud chcete nasadit RTApp společně s partnerskou aplikací vysoké úrovně, přidejte ID komponenty partnera do pole PartnerComponents v části konfigurace souboru launch.vs.json (Visual Studio) nebo .vscode/launch.json (Visual Studio Code):

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

Viz také