Partneralkalmazások létrehozása
Új partneralkalmazások létrehozásának legegyszerűbb módja, ha létrehoz egy legfelső szintű könyvtárat, amely tartalmazza a magas szintű és valós idejű alkalmazásokat, majd létrehozza a magas szintű és valós idejű alkalmazásokat.
Magas szintű alkalmazás létrehozása
Magas szintű alkalmazás létrehozásához kezdje a Visual Studio Code Azure Sphere-bővítményének HLCore Blank sablonjával, és módosítsa a konfigurációt a projekthez az alábbi lépésekkel:
Indítsa el a Visual Studio Code-ot. Válassza aParancskatalógusmegtekintése> lehetőséget, majd írja be az Azure Sphere: Új projekt létrehozása kifejezést.
A Sablonok menüben válassza az Üres HLCore lehetőséget.
A Visual Studio Code ekkor megjelenít egy Fájlkezelő ablakot. Lépjen arra a mappára, ahová az üres alkalmazást helyezni szeretné (vagy válassza az Új mappa lehetőséget, és hozzon létre egy új legfelső szintű partnerprojekt-könyvtárat), és adja meg a projekt nevét, például NewHLApp. A Visual Studio Code létrehozza a NewHLApp mappát a kiválasztott helyen, és létrehozza az üres alkalmazás buildfájljait. Látnia kell a CMake üzeneteit.
Nyissa meg a CMakeLists.txt fájlt, és adja meg a használt hardver definícióit tartalmazó mappát. Alapértelmezés szerint a HLCore Blank alkalmazás nem tartalmaz hardverdefiníciókat. A hardverdefiníciók mintáit megtalálhatja az Azure Sphere-minták adattárában, vagy létrehozhat egyet a Hardverdefiníciók szakaszban leírtak szerint.
Az alábbiakban bemutatjuk, hogyan adhatja hozzá a seeed Azure Sphere MT3620 fejlesztői készlethez tartozó hardverdefiníciókat:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "sample_appliance.json")
Ezt a sort az utolsó parancs kezdete
azsphere_target_add_image_package
előtt kell beszúrni.
A magas szintű Azure Sphere-minták bármelyikéből létrehozhat egy új, magas szintű alkalmazást:
Klónozza a minta-adattárat , ha még nem tette meg. Másolja ki az egyik magas szintű alkalmazásmappát, és nevezze át a projekthez.
A CMakeLists.txt fájlban módosítsa a projekt nevét az új mappa nevére. Például:
PROJECT(NewHLApp C)
RTApp létrehozása
Új valós idejű alkalmazás létrehozásához kezdje a Visual Studio Code Azure Sphere-bővítményének ÜRES RTCore sablonjával, és módosítsa a konfigurációt a projekthez az alábbi lépések végrehajtásával:
Indítsa el a Visual Studio Code-ot. Válassza aParancskatalógusmegtekintése> lehetőséget, majd írja be az Azure Sphere: Új projekt létrehozása kifejezést.
A Sablonok menüben válassza az ÜRES RTCore lehetőséget.
A Visual Studio Code ekkor megjelenít egy Fájlkezelő ablakot. Keresse meg a magas szintű alkalmazásmappát tartalmazó mappát, és adjon meg egy nevet a projektnek, például: NewRTApp. A Visual Studio Code létrehozza a NewRTApp mappát a kiválasztott helyen, és létrehozza az üres alkalmazás buildfájljait. Látnia kell a CMake üzeneteit.
A valós idejű azure sphere-minták bármelyikéből létrehozhat egy új, valós idejű alkalmazásokat:
Klónozza a minta-adattárat , ha még nem tette meg. Másolja ki az egyik magas szintű alkalmazásmappát, és nevezze át a projekthez.
A CMakeLists.txt fájlban módosítsa a projekt nevét az új mappa nevére. Például:
PROJECT(NewRTApp C)
A munkaterület konfigurálása partneralkalmazás-fejlesztéshez
Ha hatékonyan szeretne csatlakozni a magas szintű alkalmazáshoz és a valós idejű fejlesztésre képes alkalmazáshoz, egyesítse a két alkalmazást egyetlen több gyökérszintű munkaterületen az alábbiak szerint:
Nyissa meg a magas szintű alkalmazásmappát a Visual Studio Code-ban.
Válassza a Fájl>Mappa hozzáadása a munkaterülethez lehetőséget, majd válassza ki a valós idejű alkalmazásmappát.
Válassza a Fájl>mentése munkaterület másként lehetőséget, majd mentse a fájlt a valós idejű és magas szintű alkalmazásokat tartalmazó mappába.
Nyissa meg a munkaterületfájlt egy szövegszerkesztőben, és adja hozzá a következő indítási információkat közvetlenül a
"settings"
sor utá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": []
}
A többgyökerű munkaterületekről további információt a Visual Studio Code dokumentációjában talál.
Magas szintű alkalmazás létrehozása
Új magas szintű alkalmazás létrehozásához kezdje a Visual Studio Azure Sphere-bővítmény HLCore Blank sablonjával, és módosítsa a konfigurációt a projekthez az alábbi lépésekkel:
Indítsa el a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget.
Írja be
Azure Sphere
a sablonok keresése kifejezést a keresőmezőbe. Válassza az Azure Sphere HLCore Blank (Üres ) elemet a visszaadott listából, majd válassza a Next (Tovább) lehetőséget.Adjon meg egy projektnevet (például NewHLApp), egy projektfájl helyét és egy megoldásnevet (amely megegyezhet a projekt nevével), majd válassza a Létrehozás lehetőséget. A Visual Studio létrehozza a NewHLpp mappát a kiválasztott helyen, és létrehozza az üres alkalmazás buildfájljait. Látnia kell a CMake üzeneteit.
Nyissa meg a CMakeLists.txt fájlt, és adja meg a használt hardver definícióit tartalmazó mappát. Alapértelmezés szerint a HL Üres alkalmazás nem tartalmaz hardverdefiníciókat. A hardverdefiníciók mintáit megtalálhatja az Azure Sphere-minták adattárában, vagy létrehozhat egyet a Hardverdefiníciók szakaszban leírtak szerint.
Az alábbiakban bemutatjuk, hogyan adhatja hozzá a seeed Azure Sphere MT3620 fejlesztői készlethez tartozó hardverdefiníciókat:
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "sample_appliance.json")
Ezt a sort az utolsó parancs kezdete
azsphere_target_add_image_package
előtt kell beszúrni.
A magas szintű Azure Sphere-minták bármelyikéből létrehozhat egy új, magas szintű alkalmazást:
Klónozza a minta-adattárat , ha még nem tette meg. Másolja ki az egyik magas szintű alkalmazásmappát, és nevezze át a projekthez.
A CMakeLists.txt fájlban módosítsa a projekt nevét az új mappa nevére. Például:
PROJECT(NewHLApp C)
RTApp létrehozása
Új, valós idejű kompatibilis alkalmazás létrehozásához kezdje a Visual Studio Azure Sphere-bővítményből származó RTCore Blank sablonnal, és módosítsa a konfigurációt a projekthez az alábbi lépésekkel:
Indítsa el a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget.
Írja be
Azure Sphere
a sablonok keresése kifejezést a keresőmezőbe. Válassza az Azure Sphere RTCore Blank lehetőséget a visszaadott listából, majd válassza a Tovább lehetőséget.Adjon meg egy projektnevet (például NewRTApp), egy projektfájl helyét és a magas szintű alkalmazáshoz használt megoldásnevet, majd válassza a Létrehozás lehetőséget. A Visual Studio létrehozza a NewRTApp mappát a kiválasztott helyen, és létrehozza az üres alkalmazás buildfájljait. Látnia kell a CMake üzeneteit.
A valós idejű azure sphere-minták bármelyikéből létrehozhat egy új, valós idejű alkalmazásokat:
Klónozza a minta-adattárat , ha még nem tette meg. Másolja ki az egyik valós idejű alkalmazásmappát, és nevezze át a projekthez.
A CMakeLists.txt fájlban módosítsa a projekt nevét az új mappa nevére. Például:
PROJECT(NewRTApp C)
Felső szintű Visual Studio-indítási fájl létrehozása
A partneralkalmazások egyidejű használatához engedélyezni szeretné, hogy a Visual Studio több magon végezhesse el a hibakeresést. Ezt úgy engedélyezheti, hogy létrehoz egy launch.vs.json fájlt a két partneralkalmazásmappát tartalmazó legfelső szintű mappában. Ennek a fájlnak a következőhöz hasonló tartalommal kell rendelkeznie:
{
"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" ]
}
]
}
A "project"
sornak tartalmaznia kell a magas szintű alkalmazás CMakeLists.txt fájljának relatív elérési útját, és a "partnerComponents"
sornak tartalmaznia kell a két partneralkalmazás összetevő-azonosítóját.
Miután létrehozta ezt a felső szintű launch.vs.json fájlt, megnyithatja a Visual Studiót a felső szintű mappában, és az Indítási elem kiválasztása menüben megjelenik az Azure Sphere-alkalmazások (Minden mag) lehetőség.
CMakeWorkspaceSettings.json fájl létrehozása
Ha a Visual Studio 2022 17.1-es vagy újabb verzióját használja, és van egy több gyökerű projektje, például az IntercoreComms minta, hozzá kell adnia egy CMakeWorkspaceSettings.json fájlt a projekt legfelső szintű mappájához. A fájl két bejegyzéssel rendelkezik, az egyikben a CMake build engedélyezve van, a másik pedig a több gyökér elérési útját tartalmazza. Az IntercoreComms minta esetében például a CMakeWorkspaceSettings.json a következő tartalommal rendelkezik:
{
"enableCMake": true,
"sourceDirectory": [ "IntercoreComms_HighLevelApp", "IntercoreComms_RTApp_MT3620_BareMetal" ]
}
Az elérési utak a CMakeWorkspaceSettings.json fájlt tartalmazó mappához képest vannak megadva.
Magas szintű alkalmazás létrehozása
Új magas szintű alkalmazás létrehozásához kezdje a magas szintű Azure Sphere-minták bármelyikével:
Klónozza a minta-adattárat , ha még nem tette meg. Másolja ki az egyik magas szintű alkalmazásmappát, és nevezze át a projekthez.
A CMakeLists.txt fájlban módosítsa a projekt nevét az új mappa nevére. Például:
PROJECT(NewHLApp C)
RTApp létrehozása
Az új, valós idejű alkalmazás létrehozásának legegyszerűbb módja, ha a HelloWorld_RTApp_MT3620_BareMetal mintával kezdi, és az alábbi lépésekkel a projekthez igazítja a konfigurációt:
Klónozza a minta-adattárat , ha még nem tette meg. Másolja ki a HelloWorld_RTApp_MT3620_BareMetal mappát, és nevezze át a projekthez.
A CMakeLists.txt fájlban módosítsa a projekt nevét az új mappa nevére. Például:
PROJECT(NewRTApp C)
Az Azure Sphere-alkalmazások alapszintű fájlszerkezete
Az alkalmazás létrehozásának módjától függetlenül minden Azure Sphere-alkalmazás a következő alapvető fájlokat osztja meg:
- Alkalmazás forráskódja egy vagy több fájlban. Jelenleg csak a C nyelv forráskódja támogatott.
- CMake buildfájlok. CMakeLists.txt szükséges. A CMake és a ninja lightweight build segédprogram az Azure Sphere-alkalmazások buildelési folyamatának vezérlésére szolgál.
- Az alkalmazás számára elérhető képességeket leíró alkalmazásjegyzékfájl .
A magas szintű alkalmazások általában legalább három további fájllal rendelkeznek:
- Applibs-versions.h fájl a különböző Azure Sphere API-k verziószintjeinek megadásához
- Két hardverdefiníciós fájl (egy szerkeszthető JSON-verzió és egy C-nyelv tartalmazza a belőle létrehozott fájlt), amelyek kényelmes módot biztosítanak a kódban található hardverösszetevőkre való hivatkozásra. A hardverdefiníciós fájlok konzisztens készletével hardverfüggetlen forráskódot írhat, majd alkalmazásképeket hozhat létre adott hardverekhez, ha egyszerűen újra megcélzi a megfelelő hardverdefiníciós fájlt a CMakeLists.txt fájlban.
A valós idejű alkalmazások legalább egy másik fájlt hozzáadnak: egy linker.ld fájlt, amely pontosan meghatározza, hogy az alkalmazás különböző összetevői pontosan hol legyenek betöltve a valós idejű magra.
Magas szintű alkalmazáskód megírása
- Írja meg a magas szintű alkalmazáskódot az Azure Sphere magas szintű alkalmazásminták használatával útmutatókként. A következő témakörök konkrét megvalósítási forgatókönyveket ismertetnek:
- Perifériák használata magas szintű alkalmazásokban
- Csatlakozás webszolgáltatásokhoz
- WolfSSL használata TLS-kapcsolatokhoz
- Tanúsítványok kezelése
- A memóriahasználat ismertetése
- Eszközfrissítések késleltetése
- Idő kezelése és a valós idejű óra használata
- Eszköztároló használata
- Kommunikáció valós idejű képességgel rendelkező alkalmazással
- A Power Down állapotának kezelése
- Energiaprofilok beállítása
- Szolgáltatásfelderítés végrehajtása
- A CMakeLists.txt fájlban:
- Az Azure Sphere SDK-eszközök változatának megadása
- Cél API-készlet megadása
- A célhardver megadása
- A app_manifest.json fájlban:
- Állítsa be
Name
a projekt nevét. - Adja hozzá a kódhoz szükséges alkalmazásspecifikus képességeket, például hardveres erőforrásokat vagy kapcsolatokat. Ha a magas szintű alkalmazás kommunikál egy RTApp alkalmazással, adja hozzá a magas szintű alkalmazás összetevő-azonosítóját a
AllowedApplicationConnections
képességhez.
- Állítsa be
Ha az RTApp alkalmazást egy magas szintű partneralkalmazás mellett szeretné üzembe helyezni, adja hozzá a partner összetevő-azonosítóját a launch.vs.json (Visual Studio) vagy a .vscode/launch.json (Visual Studio Code) fájl konfigurációs szakaszának partnerComponents mezőjéhez:
"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]
Az RTApp-kód írása
- Írja meg az RTApp-kódot az Azure Sphere RTApp-minták segítségével útmutatóként. A következő témakörök konkrét megvalósítási forgatókönyveket ismertetnek:
- A app_manifest.json fájlban:
- Állítsa be
Name
a projekt nevét, - Beállítás:
ApplicationType
"RealTimeCapable"
- Adja hozzá a kódhoz szükséges alkalmazásspecifikus képességeket, például hardveres erőforrásokat vagy kapcsolatokat. Ha az RTApp magas szintű alkalmazással kommunikál, adja hozzá a magas szintű alkalmazás összetevő-azonosítóját a
AllowedApplicationConnections
képességhez.
- Állítsa be
Ha az RTApp alkalmazást egy magas szintű partneralkalmazás mellett szeretné üzembe helyezni, adja hozzá a partner összetevő-azonosítóját a launch.vs.json (Visual Studio) vagy a .vscode/launch.json (Visual Studio Code) fájl konfigurációs szakaszának partnerComponents mezőjéhez:
"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]