Kurz: Vytvoření aplikace vysoké úrovně

Aplikace vysoké úrovně běží v operačním systému Azure Sphere, používá knihovny aplikací Azure Sphere a může komunikovat s internetem a s cloudovými službami. Základní informace o aplikacích vysoké úrovně najdete v tématu Přehled aplikací Azure Sphere .

V tomto kurzu se naučíte:

  • Příprava zařízení na vývoj a ladění
  • Sestavení, spuštění a ladění aplikace vysoké úrovně

Požadavky

Příprava zařízení na vývoj a ladění

Než budete moct vytvořit ukázkovou aplikaci na zařízení Azure Sphere nebo pro ni vyvíjet nové aplikace, musíte povolit vývoj a zkušební načtení. Ve výchozím nastavení jsou zařízení Azure Sphere "uzamčená"; to znamená, že neumožňují načítání aplikací ve vývoji z počítače a neumožňují ladění aplikací. Příprava zařízení na zkušební načtení toto omezení odebere.

Příkaz az sphere device enable-development nakonfiguruje zařízení tak, aby přijímalo aplikace pro ladění, načte ladicí server do zařízení a přiřadí zařízení ke skupině zařízení , která nepovoluje aktualizace cloudových aplikací. Během vývoje a ladění aplikací byste měli zařízení ponechat v této skupině, aby aktualizace cloudových aplikací nepřepsaly vyvíjenou aplikaci.

  1. Ujistěte se, že je vaše zařízení Azure Sphere připojené k vašemu počítači a že je počítač připojený k internetu.

  2. Otevřete rozhraní příkazového řádku pomocí PowerShellu, příkazového řádku Windows nebo linuxového příkazového prostředí.

  3. Zadejte následující příkaz:

    az sphere device enable-development --resource-group <ResourceGroupName> --catalog <CatalogName> --device <DeviceIdValue>
    

    Měl by se zobrazit výstup podobný následujícímu:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

Pokud příkaz az sphere device enable-development selže, nápovědu najdete v tématu Řešení potíží s Azure Sphere .

Sestavení a spuštění aplikace vysoké úrovně pomocí editoru Visual Studio Code

V tomto kurzu se používá šablona Azure Sphere Blink, která je součástí rozšíření Azure Sphere pro Visual Studio Code. Šablona Bliká bliká na indikátor LED, abyste mohli ověřit, jestli jsou zařízení a nástroje Azure Sphere nainstalované a správně nastavené.

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

  2. V nabídce Šablony vyberte Blikat .

  1. Visual Studio Code pak zobrazí okno Průzkumník souborů. Přejděte do složky, do které chcete umístit aplikaci Blink. Visual Studio Code vytvoří složku Blink ve vybraném umístění a vygeneruje soubory sestavení pro aplikaci Blink. Měly by se zobrazit zprávy z CMake.

  2. Otevřete soubor CMakeLists.txt a změňte nastavení TARGET_DIRECTORY tak, aby bylo možné určit složku obsahující definice hardwaru, který používáte. Ve výchozím nastavení TARGET_DIRECTORY určuje HardwareDefinitions/mt3620_rbd, což odpovídá sadě Seeed Azure Sphere MT3620 Development Kit:

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

    Šablona obsahuje několik definic hardwaru. Pokud například používáte SEEED MT3620 Mini Dev Board, zadejte místo toho HardwareDefinitions/seeed_mt3620_mdb.

  3. Stisknutím klávesy F5 sestavte a ladit projekt. Pokud projekt ještě nebyl sestaven nebo pokud se změnily soubory a vyžaduje se opětovné sestavení, visual Studio Code projekt před zahájením ladění sestaví.

  4. Počkejte několik sekund, než Visual Studio Code sestaví aplikaci, vytvoří balíček image, nasadí ho na panel a spustí ji v režimu ladění. V podokně Výstup uvidíte aktualizace stavu.

    Nejprve CMake určí, jestli je potřeba aplikaci sestavit. Pokud ano, fokus se přesune do podokna výstupu, ve kterém se zobrazí výstup z CMake/Buildu.

    Dále se v podokně výstupu zobrazí výstup, který nasadí balíček image do zařízení. Nakonec konzola ladění obdrží fokus a zobrazí výstup gdb.

    Tip

    Poznamenejte si umístění balíčku image, protože ho budete potřebovat při vytváření nasazení. V okně Výstup by se měla zobrazit zpráva typu Sestavení souborů zapsaných do <cesty>, kde <cesta> je úplná cesta ke složce sestavení aplikace Blink, která obvykle končí na "out\ARM-Debug" nebo "out/ARM-Debug".

  5. Po krátké prodlevě by měla blikat kontrolka LED.

  6. Nastavte zarážku někde v souboru main.c a projděte si aplikaci, abyste mohli prozkoumat funkce ladění editoru Visual Studio Code pro Azure Sphere.

Sestavení a spuštění aplikace vysoké úrovně pomocí sady Visual Studio

V tomto kurzu se používá šablona Azure Sphere Blink, která je součástí rozšíření Azure Sphere pro Visual Studio. Šablona Bliká bliká na indikátor LED, abyste mohli ověřit, jestli jsou zařízení a nástroje Azure Sphere nainstalované a správně nastavené.

  1. Pokud se sadou Visual Studio začínáte, podívejte se na rychlý start nebo prohlídku s asistencí , kde najdete informace o navigaci a používání sady Visual Studio.

  2. Otevřete Visual Studio a vyberte Vytvořit nový projekt. Do pole Search zadejte "azure sphere", abyste získali seznam šablon Azure Sphere. V seznamu zvolte Azure Sphere Blikat .

  3. Zadejte název a umístění projektu a pak vyberte Vytvořit.

  4. Otevřete soubor CMakeLists.txt a změňte nastavení TARGET_DIRECTORY tak, aby bylo možné určit složku obsahující definice hardwaru, který používáte. Ve výchozím nastavení TARGET_DIRECTORY určuje HardwareDefinitions/mt3620_rbd, což odpovídá sadě Seeed Azure Sphere MT3620 Development Kit:

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

    Šablona obsahuje několik definic hardwaru. Pokud například používáte SEEED MT3620 Mini Dev Board, zadejte místo toho HardwareDefinitions/seeed_mt3620_mdb.

  5. V sadě Visual Studio vyberte Zobrazit>výstup a zobrazte podokno Výstup .

  6. Ujistěte se, že je zařízení připojené k počítači přes USB. V nabídce Nastavit položku po spuštění stiskněte klávesu F5 nebo vyberte Aplikace Azure Sphere (HLCore)*, kde Aplikace Azure Sphere je název vaší aktuální aplikace vysoké úrovně.

  7. Pokud se zobrazí výzva k sestavení projektu, vyberte Ano. Visual Studio zkompiluje aplikaci, vytvoří balíček image, načte ji bokem na panel a spustí ji v režimu ladění. Zkušební načtení znamená, že se aplikace doručuje přímo z počítače přes kabelové připojení, nikoli prostřednictvím cloudu.

    Tip

    Poznamenejte si umístění balíčku image, protože ho budete potřebovat při vytváření nasazení. Ve výstupu v části Zobrazit>výstup Zobrazit výstup> výstupz: Sestavení by se měla zobrazit zpráva typu Výstupní soubor je v <cestě>, kde <cesta> je úplná cesta ke složce sestavení aplikace Blink, která obvykle končí na "out/ARM-Debug".

  8. Ve výchozím nastavení se v podokně Výstup zobrazuje výstup z výstupu zařízení. Pokud chcete zobrazit zprávy z ladicího programu, vyberte v rozevírací nabídce Zobrazit výstup z možnost Ladit. Můžete také zkontrolovat přebírání programu, registry nebo paměť prostřednictvím nabídky Ladit>windows .

  9. Při spuštění programu by se měla zobrazit kontrolka LED.

Stažení ukázkové aplikace

Aplikaci HelloWorld si můžete stáhnout následujícím způsobem:

  1. Nasměrujte prohlížeč na Microsoft Samples Browser.
  2. Do pole Search zadejte "Azure Sphere".
  3. Ve výsledcích hledání vyberte Azure Sphere – Hello World.
  4. Vyberte Stáhnout ZIP.
  5. Otevřete stažený soubor a extrahujte ho do místního adresáře.

Sestavení ukázky

Pokud chcete pro ukázkovou aplikaci HelloWorld_HighLevelApp vytvořit soubory sestavení a .imagepackage, postupujte takto.

  1. V případě potřeby aktualizujte ukázku tak, aby cílila na váš hardware. Ve výchozím nastavení se ukázky zaměřují na hardware, který se řídí návrhem referenční desky MT3620 (RDB), jako je sada MT3620 Development Kit od Seeed Studios. Další definice cílového hardwaru pro ukázkové aplikace jsou k dispozici v adresáři HardwareDefinitions úložiště Ukázek Azure Sphere. Například soubory definic hardwaru pro úvodní sadu Avnet MT3620 jsou v podadresáři HardwareDefinitions/avnet_mt3620_sk.

    • Otevřete CMakeLists.txt a aktualizujte parametr TARGET_DIRECTORY ve funkci azure_target_hardware_definition tak, aby ukazoval na podadresář vašeho hardwaru. Příklad:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  2. Otevřete rozhraní příkazového řádku pomocí PowerShellu, příkazového řádku Windows nebo linuxového příkazového prostředí. Přejděte do adresáře sestavení projektu.

  3. V adresáři sestavení projektu na příkazovém řádku spusťte CMake s následujícími parametry:

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

      Název předvolby konfigurace sestavení definovaný v CMakePresets.json.

    • --build <cmake-path>

      Binární adresář, který obsahuje mezipaměť CMake. Pokud například spustíte CMake na ukázce Azure Sphere, příkaz sestavení bude cmake --build out/ARM-Debug.

    • <source-path>

      Cesta k adresáři, který obsahuje zdrojové soubory pro ukázkovou aplikaci. V tomto příkladu se úložiště ukázek Azure Sphere stáhlo do adresáře s názvem AzSphere.

      Parametry CMake jsou oddělené mezerami. Znak pokračování řádku (^ pro příkazový řádek Windows, \ pro příkazový řádek Linuxu nebo ' pro PowerShell) se dá použít pro čitelnost, ale nevyžaduje se.

    Následující příklady ukazují příkazy CMake pro aplikaci Hello World vysoké úrovně:

    Příkazový řádek Windows

     cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

     cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  4. Spuštěním ninja sestavte aplikaci a vytvořte soubor balíčku image:

    ninja -C out/ARM-Debug
    

    Ninja umístí výsledné soubory aplikace a .imagepackage do zadaného adresáře.

    Ninja můžete vyvolat také prostřednictvím CMake pomocí následujícího příkazu:

    cmake --build out/<binary-dir>
    

    Nastavte <binary-dir> na binární adresář, který obsahuje mezipaměť CMake. Pokud například spustíte CMake na ukázce Azure Sphere, příkaz sestavení bude cmake --build out/ARM-Debug.

    Při řešení potíží, zejména po provedení jakýchkoli změn příkazů CMake, odstraňte celé sestavení a zkuste to znovu.

Spuštění ukázky

  1. Pokud na vašem zařízení už běží aplikace, odstraňte ji:

    az sphere device sideload delete
    
  2. Přejděte do adresáře, který obsahuje soubory buildu a .imagepackage vytvořené dříve.

  3. Načtěte balíček image do zařízení spuštěním příkazu az sphere device sideload deploy a zadáním balíčku image. Příklad:

    az sphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Tento příkaz načte balíček image a spustí aplikaci. Měla by se zobrazit kontrolka LED.

    Tip

    Poznamenejte si cestu k balíčku image. Balíček image použijete později v rychlém startu nasazení.

Ladění ukázky

  1. Přejděte do adresáře, který obsahuje soubory buildu a .imagepackage vytvořené dříve.

  2. Získejte ID komponenty, pokud ho ještě nemáte:

    az sphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    
  3. Pokud je aplikace spuštěná, zastavte ji a restartujte ji pomocí --debug-mode možnosti:

    az sphere device app stop --component-id <ComponentId>
    
    az sphere device app start --debug-mode --component-id <ComponentId>
    

    Měli byste vidět:

     ...
       "Identity": {
         "ComponentId": "<component-id>",
         "ImageId": "<image-id>",
         "ImageType": "Application"
       },
     ...
    
  4. Pomocí terminálového klienta nastavte připojení Telnet nebo nezpracované připojení TCP ke čtení výstupního datového proudu z procesu. Jako IP adresu zadejte 192.168.35.2 a jako port 2342.

  5. Otevřete rozhraní příkazového řádku pomocí PowerShellu nebo standardního příkazového řádku ve Windows nebo příkazového prostředí v Linuxu a předejte binární soubor aplikace .out ze sestavení jako parametr. Tím se povolí ladění úplného zdrojového kódu.

    Příkazový řádek Windows

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

Poznámka

Sada Azure Sphere SDK se dodává s několika kořeny systému, aby aplikace mohly cílit na různé sady rozhraní API, jak je popsáno v tématu Verze modulu runtime aplikací, sysroots a beta rozhraní API. Sysroots se instalují do instalační složky sady Azure Sphere SDK v části Sysroots.

  1. Nastavte cíl vzdáleného ladění na IP adresu 192.168.35.2 na portu 2345:

    target remote 192.168.35.2:2345

  2. Spusťte všechny ostatní příkazy gdb, které zvolíte. Například následující příkazy nastaví zarážku při zadání na hodnotu main() a potom pokračovat v provádění za zarážkou.

    break main
    
    c
    

    Další informace o ladění pomocí gdb najdete v tématu GDB: The GNU Project Debugger nebo v některém z dalších zdrojů k tomuto tématu.

Další kroky

Vytvořili jste aplikaci vysoké úrovně, která bude běžet na zařízení Azure Sphere. Možná ho teď budete chtít upravit. Definice hardwaru popisují, jak upravit soubor JSON definice hardwaru a znovu vygenerovat přidružený soubor hlaviček.

Dále se dozvíte, jak nasadit aplikaci vysoké úrovně z cloudu.

Viz také

Navštivte galerii Azure Sphere, kolekci inspirujících, neudržovaných a opakovaně použitelných skriptů, nástrojů a funkcí Azure Sphere.