Skapa ett program på hög nivå
Det enklaste sättet att skapa ett nytt program på hög nivå är att börja med mallen Tom från tillägget Visual Studio Code Azure Sphere och justera konfigurationen till ditt projekt genom att följa de här stegen:
Starta Visual Studio-kod. Välj Visa>kommandopalett och skriv sedan Azure Sphere: Generera nytt projekt.
Välj HL Blank på menyn Mallar.
Visual Studio-kod visar sedan ett Utforskaren fönster. Navigera till mappen där du vill placera det tomma programmet och ange ett namn för projektet, till exempel NewHLApp. Visual Studio Code skapar mappen NewHLApp på den valda platsen och genererar build-filerna för det tomma programmet. Du bör se meddelanden från CMake.
Öppna filen CMakeLists.txt och ange mappen som innehåller definitioner för maskinvaran du använder. Som standard innehåller det tomma programmet HL inga maskinvarudefinitioner. Du kan hitta exempel på maskinvarudefinitioner i Azure Sphere Samples-databasen eller skapa en enligt beskrivningen i Maskinvarudefinitioner.
Följande visar hur du lägger till exempelmaskinvarudefinitioner för Seeed Azure Sphere MT3620 Development Kit:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "sample_appliance.json")
Den här raden ska infogas innan det slutliga kommandot börjar
azsphere_target_add_image_package
.
Du kan också skapa ett nytt program på hög nivå från något av Azure Sphere-exempel på hög nivå:
Klona exempelrepo om du inte redan har gjort det. Kopiera en av programmapparna på hög nivå och byt namn på den till ditt projekt.
I den CMakeLists.txt filen ändrar du projektnamnet till namnet på den nya mappen. Till exempel:
PROJECT(NewHLApp C)
Det enklaste sättet att skapa ett nytt program på hög nivå är att börja med mallen Tom från Tillägget Visual Studio Azure Sphere och justera konfigurationen till projektet genom att följa de här stegen:
Starta Visual Studio och välj Skapa ett nytt projekt.
Skriv
Azure Sphere
i sökrutan Sök efter mallar. Välj Azure Sphere HLCore Blank i den returnerade listan och välj sedan Nästa.Ange ett projektnamn (till exempel NewHLApp), en projektfilplats och ett lösningsnamn (som kan vara samma som projektnamnet) och välj sedan Skapa. Visual Studio skapar mappen NewHLpp på den valda platsen och genererar build-filerna för det tomma programmet. Du bör se meddelanden från CMake.
Öppna filen CMakeLists.txt och ange mappen som innehåller definitioner för maskinvaran du använder. Som standard innehåller det tomma programmet HL inga maskinvarudefinitioner. Du kan hitta exempel på maskinvarudefinitioner i Azure Sphere Samples-databasen eller skapa en enligt beskrivningen i Maskinvarudefinitioner.
Följande visar hur du lägger till exempelmaskinvarudefinitioner för Seeed Azure Sphere MT3620 Development Kit:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "sample_appliance.json")
Den här raden ska infogas innan det slutliga kommandot börjar
azsphere_target_add_image_package
.
Du kan också skapa ett nytt program på hög nivå från något av Azure Sphere-exempel på hög nivå:
Klona exempelrepo om du inte redan har gjort det. Kopiera en av programmapparna på hög nivå och byt namn på den till ditt projekt.
I den CMakeLists.txt filen ändrar du projektnamnet till namnet på den nya mappen. Till exempel:
PROJECT(NewHLApp C)
Det enklaste sättet att skapa ett nytt program på hög nivå är att börja med något av azure sphere-exemplen på hög nivå:
Klona exempelrepo om du inte redan har gjort det. Kopiera en av programmapparna på hög nivå och byt namn på den till ditt projekt.
I den CMakeLists.txt filen ändrar du projektnamnet till namnet på den nya mappen. Till exempel:
PROJECT(NewHLApp C)
Grundläggande filstruktur i ett program på hög nivå
Oavsett hur du skapar ditt program har alla Azure Sphere-program följande kärnfiler:
- Programkällans kod i en eller flera filer. För närvarande stöds endast C-språkkällkod.
- CMake-byggfiler. CMakeLists.txt krävs. CMake används tillsammans med ninja lightweight build-verktyget för att styra azure sphere-programbyggprocessen.
- En appmanifestfil som beskriver de funktioner som är tillgängliga för programmet.
Program på hög nivå har vanligtvis minst tre andra filer:
- En applibs-versions.h-fil för att ange versionsnivåer för olika Azure Sphere-API:er
- Två maskinvarudefinitionsfiler (en redigerbar version i JSON-format och ett C-språk innehåller en fil som genererats av den) som är ett bekvämt sätt att referera till maskinvarukomponenter i koden. Med en konsekvent uppsättning maskinvarudefinitionsfiler kan du skriva maskinvaruoberoende källkod och sedan skapa programavbildningar för specifik maskinvara genom att helt enkelt ändra inriktning på lämplig maskinvarudefinitionsfil i CMakeLists.txt-filen.
Skriv din kod
- Skriv programkoden med azure sphere-exempel på högnivåappar som guider. I följande avsnitt beskrivs specifika implementeringsscenarier:
- Använda kringutrustning i ett program på hög nivå
- Ansluta till webbtjänster
- Använda wolfSSL för TLS-anslutningar
- Hantera certifikat
- Förstå minnesanvändning
- Skjuta upp enhetsuppdateringar
- Hantera tid och använda realtidsklockan
- Använda enhetslagring
- Kommunicera med ett program som kan användas i realtid
- Hantera energisparläge
- Ange energiprofiler
- Utföra tjänstidentifiering
- I denCMakeLists.txt filen:
- Ange revidering av Azure Sphere SDK-verktyg
- Ange mål-API-uppsättning
- Ange målmaskinvaran
- I filen app_manifest.json:
- Ange
Name
projektets namn. - Lägg till programspecifika funktioner som din kod kräver, till exempel maskinvaruresurser eller anslutningar. Om högnivåappen kommunicerar med en RTApp lägger du till komponent-ID:t för högnivåprogrammet till
AllowedApplicationConnections
funktionen.
- Ange
Om du vill distribuera högnivåappen tillsammans med en kompatibel partnerapp i realtid lägger du till komponent-ID:t för partnern i fältet partnerkomponenter i konfigurationsavsnittet i filen launch.vs.json (Visual Studio) eller .vscode/launch.json (Visual Studio Code):
"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]