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ů:
Spusťte Visual Studio Code. Vyberte Zobrazit>paletu příkazů a zadejte Azure Sphere: Generate New Project (Azure Sphere: Generate New Project).
V nabídce Šablony zvolte HLCore Blank.
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.
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:
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.
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ů:
Spusťte Visual Studio Code. Vyberte Zobrazit>paletu příkazů a zadejte Azure Sphere: Generate New Project (Azure Sphere: Generate New Project).
V nabídce Šablony zvolte RTCore Prázdné.
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:
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.
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:
Otevřete složku aplikací vysoké úrovně v editoru Visual Studio Code.
Vyberte Soubor>Přidat složku do pracovního prostoru a pak vyberte složku aplikace podporující v reálném čase.
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ě.
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ů:
Spusťte Visual Studio a vyberte Vytvořit nový projekt.
Do vyhledávacího pole s popiskem Hledat šablony zadejte
Azure Sphere
. Z vráceného seznamu vyberte Azure Sphere HLCore Blank a pak vyberte Další.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.
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:
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.
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ů:
Spusťte Visual Studio a vyberte Vytvořit nový projekt.
Do vyhledávacího pole s popiskem Hledat šablony zadejte
Azure Sphere
. Z vráceného seznamu vyberte Azure Sphere RTCore Blank a pak vyberte Další.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:
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.
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:
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.
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ů:
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.
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ě
- 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:
- Použití periferních zařízení v aplikaci vysoké úrovně
- Připojení k webovým službám
- Použití wolfSSL pro připojení TLS
- Správa certifikátů
- Principy využití paměti
- Odložení aktualizací zařízení
- Správa času a používání hodin v reálném čase
- Použití úložiště zařízení
- Komunikace s aplikací podporujícími v reálném čase
- Správa stavu vypnutí
- Nastavení profilů napájení
- Provádění zjišťování služeb
- 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
- 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ě.
- Nastavte
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
- 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:
- 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ě.
- Nastavte
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" ]