Sestavování a nasazování partnerských aplikací
Tato část popisuje, jak sestavovat, balit a nasazovat partnerské aplikace Azure Sphere.
Tyto pokyny používají ukázkové aplikace IntercoreComms jako příklad.
Požadavky
- Připojení zařízení Azure Sphere k počítači
- Instalace Azure Sphere
- Nainstalujte sadu nástrojů GNU Arm Embedded , pokud používáte Visual Studio Code nebo rozhraní příkazového řádku.
- Pokud jste to ještě neudělali, nastavte hardware tak, aby zobrazoval výstup z vyhrazeného objektu UART.
Povolení vývoje 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 ladění. 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í pro ladění toto omezení odebere a načte software potřebný k ladění a odemkne funkce zařízení .
K ladění jader v reálném čase použijte příkaz az sphere device enable-development . Tento příkaz nakonfiguruje zařízení tak, aby přijímalo aplikace z počítače pro ladění, a přiřadí ho do skupiny zařízení Vývoj, 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.
Ve Windows musíte do zařízení přidat --enable-rt-core-debugging
parametr , který načte ladicí servery a požadované ovladače pro každý typ jádra.
Pokud jste to ještě neudělali, přihlaste se k Azure Sphere:
az login
Otevřete rozhraní příkazového řádku pomocí PowerShellu nebo příkazového řádku Windows s oprávněními správce. Parametr
--enable-rt-core-debugging
vyžaduje oprávnění správce, protože instaluje ovladače USB pro ladicí program.Zadejte následující příkaz:
az sphere device enable-development --enable-rt-core-debugging --catalog <CatalogName> --resource-group <ResourceGroupName>
Po dokončení příkazu zavřete okno, protože oprávnění správce se už nevyžadují. Osvědčeným postupem je vždy použít nejnižší oprávnění, které může úkol provést.
Pokud příkaz az sphere device enable-development selže, nápovědu najdete v tématu Řešení potíží s Azure Sphere .
Povolení vývoje 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 ladění. 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 ladění toto omezení odebere a načte software potřebný k ladění a odemkne funkce zařízení, jak je popsáno v tématu Možnosti zařízení a komunikace.
K ladění jader v reálném čase použijte příkaz az sphere device enable-development . Tento příkaz nakonfiguruje zařízení tak, aby přijímalo aplikace z počítače pro ladění, a přiřadí ho do skupiny zařízení Vývoj, 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.
Ve Windows musíte do zařízení přidat --enable-rt-core-debugging
parametr , který načte ladicí servery a požadované ovladače pro každý typ jádra.
Pokud jste to ještě neudělali, přihlaste se k Azure:
az login
Otevřete rozhraní příkazového řádku pomocí PowerShellu, příkazového řádku Windows nebo příkazového prostředí Linuxu s oprávněními správce. Parametr
--enable-rt-core-debugging
vyžaduje oprávnění správce, protože instaluje ovladače USB pro ladicí program.Zadejte následující příkaz:
az sphere device enable-development --enable-rt-core-debugging
Po dokončení příkazu zavřete okno, protože oprávnění správce se už nevyžadují. Osvědčeným postupem je vždy použít nejnižší oprávnění, které může úkol provést.
Pokud příkaz az sphere device enable-development selže s následující chybovou zprávou, nápovědu najdete v tématu Řešení potíží s 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 'az sphere device show-deployment-status'.
Vytváření partnerských aplikací pomocí sady Visual Studio
Ujistěte se, že je zařízení připojené k počítači přes USB. V nabídce Nastavit spouštěcí položku vyberte Aplikace Azure Sphere (všechna jádra), kde Azure Sphere App je název vašeho projektu nejvyšší úrovně, nebo stiskněte klávesu F5.
Pokud se zobrazí výzva k sestavení projektu, vyberte Ano. Visual Studio zkompiluje partnerské aplikace, vytváří balíčky imagí, načítá je bokem na panel a spouští je v režimu ladění. Zkušební načtení znamená, že se aplikace doručují přímo z počítače přes kabelové připojení, nikoli prostřednictvím cloudu.
Všimněte si cest v zobrazení>výstupu>Zobrazit výstup z: Výstup sestavení , který označuje umístění výstupních balíčků imagí na vašem počítači. Až budete připraveni vytvořit nasazení, budete muset znát cesty k balíčkům imagí.
Ve výchozím nastavení se v okně 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 .
Vytváření partnerských aplikací pomocí editoru Visual Studio Code
Otevřete složku obsahující vaše partnerské aplikace. Visual Studio Code zjistí soubor pracovního prostoru a zeptá se, jestli chcete pracovní prostor otevřít. Výběrem možnosti Otevřít pracovní prostor otevřete aplikaci v reálném čase i aplikaci vysoké úrovně najednou.
Klikněte pravým tlačítkem na některý ze dvou CMakeLists.txt souborů a vyberte Sestavit všechny projekty.
Klikněte na ikonu Spustit na panelu aktivity editoru Visual Studio Code.
V rozevírací nabídce, která se zobrazí v horní části okna na levé straně obrazovky, vyberte Spustit aplikace Azure Sphere (gdb)(pracovní prostor).
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í.
Počkejte několik sekund, než Visual Studio Code sestaví aplikace, vytvoří balíčky imagí, nasadí je na panel a spustí je v režimu ladění. V podokně Výstup uvidíte aktualizace stavu.
Nejprve CMake určí, jestli je potřeba aplikace sestavit. Pokud ano, fokus se přesune do okna 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.
Kompilace a sestavení aplikace
Pokud chcete vytvářet aplikace pomocí rozhraní příkazového řádku, budete muset v počítači najít správné nástroje pro kompilaci, hlavičky a knihovny ( souhrnně označované jako sysroot). 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.
Při sestavování pomocí rozhraní příkazového řádku nejprve sestavte a nasaďte aplikaci podporující v reálném čase a pak sestavte a nasaďte aplikaci vysoké úrovně.
Sestavení a nasazení aplikace podporující v reálném čase
Přejděte do složky obsahující aplikaci podporující v reálném čase.
Otevřete soubor app_manifest.json a ověřte, že se ID komponenty aplikace vysoké úrovně zobrazuje ve funkci AllowedApplicationConnections.
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.
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 IntercoreComms RTApp:
Příkazový řádek 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"
V adresáři sestavení projektu spusťte na příkazovém řádku příkaz Ninja, který sestaví aplikaci a vytvoří 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í budecmake --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.
Odstraňte všechny aplikace, které už jsou na zařízení nasazené:
az sphere device sideload delete
Z adresáře sestavení projektu na příkazovém řádku načtěte balíček image, který ninja vytvořil:
az sphere device sideload deploy --image-package <path-to-imagepackage>
Aplikace se začne spouštět brzy po načtení.
Získejte ID komponenty pro image:
az sphere image-package show --image-package <path-to-imagepackage>
Příkaz vrátí všechna metadata balíčku image. ID komponenty aplikace se zobrazí v části Identita pro typ bitové kopie aplikace. Příklad:
... "Identity": { "ComponentId": "<component-id>", "ImageId": "<image-id>", "ImageType": "Application" }, ...
Sestavení a nasazení aplikace vysoké úrovně
Přejděte do složky obsahující aplikaci vysoké úrovně.
Otevřete soubor app_manifest.json a ověřte, že se ID komponenty RTApp zobrazuje ve funkci AllowedApplicationConnections.
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.
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 IntercoreComms vysoké úrovně.
V adresáři sestavení projektu spusťte na příkazovém řádku příkaz Ninja, který sestaví aplikaci a vytvoří 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í budecmake --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.
Z adresáře sestavení projektu na příkazovém řádku načtěte balíček image, který ninja vytvořil:
az sphere device sideload deploy --image-package <package-name>
Aplikace se začne spouštět brzy po načtení.
Získejte ID komponenty pro image:
az sphere image-package show --image-package <path-to-imagepackage>
Příkaz vrátí všechna metadata balíčku image. ID komponenty aplikace se zobrazí v části Identita pro typ bitové kopie aplikace. Příklad:
"ComponentId": "<component-ID>", ... "Identity": { "ComponentId": "<component-id>", "ImageId": "<image-id>", "ImageType": "Application" }, ...