Skapa partnerprogram
Det enklaste sättet att skapa ett nytt par partnerprogram är att skapa en toppnivåkatalog som innehåller både de program som kan användas på hög nivå och i realtid, och sedan skapa de appar som kan användas på hög nivå och i realtid i tur och ordning.
Skapa en app på hög nivå
Om du vill skapa ett program på hög nivå börjar du med mallen HLCore Blank från tillägget Visual Studio Code Azure Sphere och justerar 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 HLCore Blank på menyn Mallar.
Visual Studio-kod visar sedan ett Utforskaren fönster. Navigera till mappen där du vill placera det tomma programmet (eller välj Ny mapp och skapa en ny toppnivåpartnerprojektkatalog) 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 HLCore Blank-programmet 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)
Skapa en RTApp
Om du vill skapa ett nytt realtidsprogram börjar du med rtcore-mallen tom från tillägget Visual Studio Code Azure Sphere och justerar 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 RTCore Blank på menyn Mallar.
Visual Studio-kod visar sedan ett Utforskaren fönster. Navigera till den mapp som innehåller den övergripande programmappen och ange ett namn för projektet, till exempel NewRTApp. Visual Studio Code skapar mappen NewRTApp på den valda platsen och genererar build-filerna för det tomma programmet. Du bör se meddelanden från CMake.
Du kan också skapa ett nytt program som kan användas i realtid från något av de Azure Sphere-exempel som kan användas i realtid:
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(NewRTApp C)
Konfigurera arbetsytan för utveckling av partnerappar
Kombinera dina två program till en enda multi-root-arbetsyta så här för att effektivt ansluta till ett program på hög nivå och ett kompatibelt realtidsprogram för utveckling:
Öppna programmappen på hög nivå i Visual Studio-kod.
Välj Lägg>till mapp i arbetsytan och välj sedan den programmapp som kan användas i realtid.
Välj Spara>arbetsyta som... och spara sedan filen i mappen som innehåller både de program som kan användas i realtid och på hög nivå.
Öppna arbetsytans fil i en textredigerare och lägg till följande startinformation direkt efter
"settings"
raden:
"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": []
}
Mer information om multirotsarbetsytor finns i dokumentationen för Visual Studio-kod .
Skapa en app på hög nivå
Om du vill skapa ett nytt program på hög nivå börjar du med mallen HLCore Blank från tillägget Visual Studio Azure Sphere och justerar 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)
Skapa en RTApp
Om du vill skapa ett nytt program som kan användas i realtid börjar du med mallen TOM RTCore från tillägget Visual Studio Azure Sphere och justerar 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 RTCore Blank i den returnerade listan och välj sedan Nästa.Ange ett projektnamn (till exempel NewRTApp), en projektfilplats och lösningsnamnet som du använde för högnivåprogrammet och välj sedan Skapa. Visual Studio skapar mappen NewRTApp på den valda platsen och genererar build-filerna för det tomma programmet. Du bör se meddelanden från CMake.
Du kan också skapa ett nytt program som kan användas i realtid från något av de Azure Sphere-exempel som kan användas i realtid:
Klona exempelrepo om du inte redan har gjort det. Kopiera en av de programmappar som kan användas i realtid 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(NewRTApp C)
Skapa en Visual Studio-startfil på översta nivån
Om du vill arbeta med partnerprogram samtidigt tillåter du att Visual Studio felsöker i flera kärnor. Du kan aktivera detta genom att skapa en launch.vs.json-fil i mappen på den översta nivån som innehåller de två partnerprogrammapparna. Den här filen ska ha innehåll som liknar följande:
{
"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" ]
}
]
}
Raden "project"
ska innehålla den relativa sökvägen till högnivåprogrammets CMakeLists.txt-fil, och "partnerComponents"
raden ska ha komponent-ID:na för de två partnerprogrammen.
När du har skapat den här top level launch.vs.json-filen kan du öppna Visual Studio i mappen på översta nivån och du ser alternativet Azure Sphere Apps (Alla kärnor) på menyn Välj startobjekt .
Skapa en CMakeWorkspaceSettings.json-fil
Om du använder Visual Studio 2022 version 17.1 eller senare och du har ett projekt med flera rötter, till exempel intercoreComms-exemplet, måste du lägga till en CMakeWorkspaceSettings.json-fil i projektets toppnivåmapp. Filen har två poster, en för att ange att CMake-versionen är aktiverad och en som innehåller sökvägarna till flera rötter. Exempel: För intercoreComms-exemplet har CMakeWorkspaceSettings.json följande innehåll:
{
"enableCMake": true,
"sourceDirectory": [ "IntercoreComms_HighLevelApp", "IntercoreComms_RTApp_MT3620_BareMetal" ]
}
Sökvägarna anges i förhållande till mappen som innehåller filen CMakeWorkspaceSettings.json.
Skapa en app på hög nivå
Om du vill skapa ett nytt program på hög nivå börjar du med 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)
Skapa en RTApp
Det enklaste sättet att skapa ett nytt program som kan användas i realtid är att börja med det HelloWorld_RTApp_MT3620_BareMetal exemplet och justera konfigurationen till projektet genom att följa de här stegen:
Klona exempelrepo om du inte redan har gjort det. Kopiera mappen HelloWorld_RTApp_MT3620_BareMetal och byt namn på den till projektet.
I den CMakeLists.txt filen ändrar du projektnamnet till namnet på den nya mappen. Till exempel:
PROJECT(NewRTApp C)
Grundläggande filstruktur i Azure Sphere-program
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.
I realtidsaktiverade program läggs minst en fil till: en linker.ld-fil för att ange exakt var olika komponenter i programmet ska läsas in i realtidskärnan.
Skriva din appkod på hög nivå
- Skriv programkoden på hög nivå med hjälp av azure sphere-appexemplen 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 din RTApp tillsammans med en partnerapp på hög nivå 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" ]
Skriva din RTApp-kod
- Skriv din RTApp-kod med Azure Sphere RTApp-exempel som guider. I följande avsnitt beskrivs specifika implementeringsscenarier:
- I filen app_manifest.json:
- Ange
Name
ditt projektnamn - Ange
ApplicationType
till"RealTimeCapable"
- Lägg till programspecifika funktioner som din kod kräver, till exempel maskinvaruresurser eller anslutningar. Om RTApp kommunicerar med en app på hög nivå lägger du till komponent-ID:t för högnivåprogrammet till
AllowedApplicationConnections
funktionen.
- Ange
Om du vill distribuera din RTApp tillsammans med en partnerapp på hög nivå 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" ]