Megosztás a következőn keresztül:


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:

  1. 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 Visual Studio Code parancssávja

  2. A Sablonok menüben válassza az Üres HLCore lehetőséget.

    előugró menü sablonnevekkel

  3. 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.

  4. 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_packageelőtt kell beszúrni.

A magas szintű Azure Sphere-minták bármelyikéből létrehozhat egy új, magas szintű alkalmazást:

  1. 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.

  2. 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:

  1. 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 Visual Studio Code parancssávja

  2. A Sablonok menüben válassza az ÜRES RTCore lehetőséget.

    előugró menü sablonnevekkel

  3. 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:

  1. 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.

  2. 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:

  1. Nyissa meg a magas szintű alkalmazásmappát a Visual Studio Code-ban.

  2. 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.

  3. 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.

  4. 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:

  1. Indítsa el a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget.

  2. Í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.

  3. 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.

  4. 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_packageelőtt kell beszúrni.

A magas szintű Azure Sphere-minták bármelyikéből létrehozhat egy új, magas szintű alkalmazást:

  1. 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.

  2. 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:

  1. Indítsa el a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget.

  2. Í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.

  3. 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:

  1. 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.

  2. 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:

  1. 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.

  2. 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:

  1. 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.

  2. 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

  1. Í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:
  2. 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
  3. 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.
  1. 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

  1. Í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:
  2. 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.
  1. 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" ]

Lásd még: