Oktatóanyag: Magas szintű alkalmazás létrehozása

Egy magas szintű alkalmazás az Azure Sphere operációs rendszeren fut, az Azure Sphere alkalmazáskódtárait használja, és képes kommunikálni az internettel és a felhőalapú szolgáltatásokkal. A magas szintű alkalmazásokkal kapcsolatos alapvető információkért tekintse meg az Azure Sphere-alkalmazások áttekintését .

Ebben az oktatóanyagban a következőket sajátíthatja el:

  • Az eszköz előkészítése a fejlesztéshez és a hibakereséshez
  • Magas szintű alkalmazás létrehozása, futtatása és hibakeresése

Előfeltételek

Az eszköz előkészítése a fejlesztéshez és a hibakereséshez

Mielőtt létrehozhat egy mintaalkalmazást az Azure Sphere-eszközön, vagy új alkalmazásokat fejleszthet hozzá, engedélyeznie kell a fejlesztést és a közvetlen telepítést. Alapértelmezés szerint az Azure Sphere-eszközök "zárolva" vannak; vagyis nem engedélyezik a fejlesztés alatt álló alkalmazások betöltését a számítógépről, és nem teszik lehetővé az alkalmazások hibakeresését. Az eszköz közvetlen telepítésre való előkészítése eltávolítja ezt a korlátozást.

Az az sphere device enable-development parancs úgy konfigurálja az eszközt, hogy fogadja a hibakeresési alkalmazásokat, betölti a hibakereső kiszolgálót az eszközre, és hozzárendeli az eszközt egy olyan eszközcsoporthoz , amely nem engedélyezi a felhőalkalmazások frissítését. Az alkalmazásfejlesztés és a hibakeresés során az eszközt ebben a csoportban kell hagynia, hogy a felhőalapú alkalmazásfrissítések ne írja felül a fejlesztés alatt álló alkalmazást.

  1. Győződjön meg arról, hogy az Azure Sphere-eszköz csatlakoztatva van a számítógéphez, a számítógép pedig az internethez.

  2. Nyisson meg egy parancssori felületet a PowerShell, a Windows parancssor vagy a Linux parancshéj használatával.

  3. Adja meg a következő parancsot:

    az sphere device enable-development --resource-group <ResourceGroupName> --catalog <CatalogName> --device <DeviceIdValue>
    

    A következőhöz hasonló kimenetnek kell megjelennie:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

Ha az az sphere device enable-development parancs sikertelen, segítségért tekintse meg az Azure Sphere-problémák hibaelhárítását ismertető cikket.

Magas szintű alkalmazás létrehozása és futtatása a Visual Studio Code-dal

Ez az oktatóanyag az Azure Sphere Blink sablont használja, amely a Visual Studio Code-hoz készült Azure Sphere-bővítmény része. A Blink sablon villog egy LED-en, így ellenőrizheti, hogy az Azure Sphere-eszköz és -eszközök megfelelően vannak-e telepítve és beállítva.

  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.

  2. A Sablonok menüben válassza a Villogás lehetőséget.

  1. A Visual Studio Code ekkor megjelenít egy Fájlkezelő ablakot. Lépjen arra a mappára, ahová a Blink alkalmazást helyezni szeretné. A Visual Studio Code létrehozza a Blink mappát a kiválasztott helyen, és létrehozza a Blink alkalmazás buildfájljait. Látnia kell a CMake üzeneteit.

  2. Nyissa meg a CMakeLists.txt fájlt, és módosítsa a TARGET_DIRECTORY beállítást a használt hardver definícióit tartalmazó mappa megadásához. Alapértelmezés szerint a TARGET_DIRECTORY a HardwareDefinitions/mt3620_rbd értéket adja meg, amely megfelel a Seeed Azure Sphere MT3620 fejlesztői készletnek:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    A sablon számos hardverdefiníciót tartalmaz. Ha például SEEED MT3620 Mini fejlesztői táblát használ, adja meg helyette a HardwareDefinitions/seeed_mt3620_mdb értéket.

  3. Nyomja le az F5 billentyűt a projekt létrehozásához és hibakereséséhez. Ha a projekt még nem készült el, vagy ha a fájlok megváltoztak, és újra kell építeni, a Visual Studio Code a hibakeresés megkezdése előtt létrehozza a projektet.

  4. Várjon néhány másodpercet, amíg a Visual Studio Code létrehozza az alkalmazást, létrehoz egy rendszerképcsomagot, üzembe helyezi a táblán, és hibakeresési módban elindítja. Az állapotfrissítések az út mentén, a Kimenet panelen láthatók.

    Először a CMake határozza meg, hogy létre kell-e építeni az alkalmazást. Ha igen, a fókusz a kimeneti panelre kerül, amely megjeleníti a CMake/Build kimenetét.

    Ezután a kimeneti panel megjeleníti a kimenetet, amikor üzembe helyezi a lemezképcsomagot az eszközön. Végül a hibakeresési konzol megkapja a fókuszt, és megjeleníti a gdb kimenetét.

    Tipp

    Jegyezze fel a rendszerképcsomag helyét, mivel szüksége lesz rá egy üzemelő példány létrehozásakor. A Kimenet ablakban egy olyan üzenetnek kell megjelennie, mint az "Elérési útba <>írt fájlok létrehozása", ahol <az elérési út> a Blink-alkalmazás buildmappájának teljes elérési útja, amely általában "out\ARM-Debug" vagy "out/ARM-Debug" végződésű.

  5. Rövid késleltetés után egy LED-villogásnak kell megjelennie.

  6. Állítson be egy töréspontot valahol a main.c fájlban, és haladjon végig az alkalmazáson, hogy megismerhesse az Azure Sphere Visual Studio Code hibakeresési funkcióit.

Magas szintű alkalmazás létrehozása és futtatása a Visual Studióval

Ez az oktatóanyag az Azure Sphere Blink sablont használja, amely a Visual Studio Azure Sphere-bővítményének része. A Blink sablon villog egy LED-en, így ellenőrizheti, hogy az Azure Sphere-eszköz és -eszközök megfelelően vannak-e telepítve és beállítva.

  1. Ha még nem használta a Visual Studiót, tekintse meg a rövid útmutatót vagy az interaktív bemutatót , amelyből megtudhatja, hogyan navigálhat és használhatja azt.

  2. Nyissa meg a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget. A Keresés mezőbe írja be az "azure sphere" kifejezést az Azure Sphere-sablonok listájának lekéréséhez. Válassza az Azure Sphere Blink elemet a listából.

  3. Adja meg a projekt nevét és helyét, majd válassza a Létrehozás lehetőséget.

  4. Nyissa meg a CMakeLists.txt fájlt, és módosítsa a TARGET_DIRECTORY beállítást a használt hardver definícióit tartalmazó mappa megadásához. Alapértelmezés szerint a TARGET_DIRECTORY a HardwareDefinitions/mt3620_rbd értéket adja meg, amely megfelel a Seeed Azure Sphere MT3620 fejlesztői készletnek:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    A sablon számos hardverdefiníciót tartalmaz. Ha például SEEED MT3620 Mini fejlesztői táblát használ, adja meg helyette a HardwareDefinitions/seeed_mt3620_mdb értéket.

  5. A Visual Studióban válassza aKimenetmegtekintése> lehetőséget a Kimenet panel megjelenítéséhez.

  6. Győződjön meg arról, hogy az eszköz USB-n keresztül csatlakozik a számítógéphez. Az Indítási elem beállítása menüben nyomja le az F5 billentyűt , vagy válassza az Azure Sphere-alkalmazás (HLCore)* lehetőséget, ahol az Azure Sphere-alkalmazás az aktuális magas szintű alkalmazás neve.

  7. Ha a rendszer kéri a projekt összeállítását, válassza az Igen lehetőséget. A Visual Studio lefordítja az alkalmazást, létrehoz egy képcsomagot, közvetlenül betölti a táblára, és hibakeresési módban elindítja. A közvetlen telepítés azt jelenti, hogy az alkalmazás közvetlenül a számítógépről, vezetékes kapcsolaton keresztül érkezik, nem pedig a felhőn keresztül.

    Tipp

    Jegyezze fel a rendszerképcsomag helyét, mivel szüksége lesz rá az üzembe helyezés létrehozásakor. A kimenetben egy olyan üzenetnek kell megjelennie, mint a "Output file is at: <path>" (Kimeneti fájl a következőtől: Buildkimenetének>megtekintése>), ahol <az elérési út> a Blink-alkalmazás buildmappájának teljes elérési útja, amely általában "out/ARM-Debug" (out/ARM-Debug) végződésű.

  8. Alapértelmezés szerint a Kimenet panelen az Eszközkimenet kimenete látható. A hibakereső üzeneteinek megtekintéséhez válassza a Hibakeresés lehetőséget a Kimenet megjelenítése innen: legördülő menüben. AWindowshibakeresési> menüjében a program szétbontását, regisztrációit vagy memóriáját is megvizsgálhatja.

  9. A program futtatásakor egy LED-villogásnak kell megjelennie.

A mintaalkalmazás letöltése

A HelloWorld alkalmazást a következőképpen töltheti le:

  1. Mutasson a böngészőre a Microsoft Samples Browserre.
  2. Írja be az "Azure Sphere" kifejezést a Keresés mezőbe.
  3. Válassza az Azure Sphere – "Helló világ!" alkalmazás lehetőséget a keresési eredmények közül.
  4. Válassza a ZIP letöltése lehetőséget.
  5. Nyissa meg a letöltött fájlt, és bontsa ki egy helyi könyvtárba.

A minta létrehozása

A HelloWorld_HighLevelApp mintaalkalmazás build- és .imagepackage fájljainak létrehozásához kövesse az alábbi lépéseket.

  1. Szükség esetén frissítse a mintát a hardver megcélzásához. Alapértelmezés szerint a minták az MT3620 referenciatábla-kialakítást (RDB) követő hardvereket célják, például a Seeed Studios MT3620 fejlesztői készletét. A mintaalkalmazásokhoz további célhardver-definíciók érhetők el az Azure Sphere-minták adattárának HardwareDefinitions könyvtárában. Az Avnet MT3620 Starter Kit hardverdefiníciós fájljai például a HardwareDefinitions/avnet_mt3620_sk alkönyvtárban találhatók.

    • Nyissa meg CMakeLists.txt, és frissítse a TARGET_DIRECTORY paramétert a azure_target_hardware_definition függvényben, hogy a hardver alkönyvtárára mutasson. Például:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  2. Nyisson meg egy parancssori felületet a PowerShell, a Windows parancssor vagy a Linux parancshéj használatával. Nyissa meg a projekt buildkönyvtárát.

  3. Futtassa a CMake parancsot a projekt buildkönyvtárában a parancssorban a következő paraméterekkel:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      A buildkonfiguráció beállításkészletének neve a CMakePresets.json.

    • --build <cmake-path>

      A CMake-gyorsítótárat tartalmazó bináris könyvtár. Ha például a CMake-et egy Azure Sphere-mintán futtatja, a build parancs a következő lesz cmake --build out/ARM-Debug: .

    • <source-path>

      A mintaalkalmazás forrásfájljait tartalmazó könyvtár elérési útja. A példában az Azure Sphere-mintaadattár egy AzSphere nevű könyvtárba lett letöltve.

      A CMake-paraméterek szóközökkel vannak elválasztva. A sorfolytatási karakter (Windows parancssor esetén^, Linux parancssor esetén \ vagy PowerShell esetén ' ) használható az olvashatósághoz, de nem kötelező.

    Az alábbi példák a "Helló világ!" alkalmazás magas szintű alkalmazás CMake-parancsait mutatják be:

    Windows parancssor

     cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

     cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  4. Futtassa a Ninja parancsot az alkalmazás létrehozásához és a képcsomagfájl létrehozásához:

    ninja -C out/ARM-Debug
    

    A Ninja elhelyezi az eredményként kapott alkalmazást és .imagepackage fájlokat a megadott könyvtárban.

    A Nindzsát a CMake-n keresztül is meghívhatja a következő paranccsal:

    cmake --build out/<binary-dir>
    

    Állítsa a <binary-dir> CMake-gyorsítótárat tartalmazó bináris könyvtárra. Ha például a CMake-et egy Azure Sphere-mintán futtatja, a build parancs a következő lesz cmake --build out/ARM-Debug: .

    Hibaelhárításkor, különösen a CMake-parancsok módosítása után törölje a teljes buildet, és próbálkozzon újra.

A minta futtatása

  1. Ha az eszköz már futtat egy alkalmazást, törölje az alkalmazást:

    az sphere device sideload delete
    
  2. Váltson a korábban létrehozott build- és .imagepackage-fájlokat tartalmazó könyvtárra.

  3. Töltse be a képcsomagot az eszközre az az sphere device sideload deploy parancs futtatásával és a képcsomag megadásával. Például:

    az sphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Ez a parancs betölti a rendszerképcsomagot, és elindítja az alkalmazást. Egy LED-villogást kell látnia.

    Tipp

    Jegyezze fel a képcsomag elérési útját. A rendszerképcsomagot az üzembe helyezési rövid útmutató későbbi részében fogja használni.

A minta hibakeresése

  1. Váltson a korábban létrehozott build- és .imagepackage-fájlokat tartalmazó könyvtárra.

  2. Ha még nem rendelkezik vele, kérje le az összetevő azonosítóját:

    az sphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    
  3. Ha az alkalmazás fut, állítsa le, majd indítsa újra a --debug-mode következő beállítással:

    az sphere device app stop --component-id <ComponentId>
    
    az sphere device app start --debug-mode --component-id <ComponentId>
    

    A következőnek kell megjelennie:

     ...
       "Identity": {
         "ComponentId": "<component-id>",
         "ImageId": "<image-id>",
         "ImageType": "Application"
       },
     ...
    
  4. Használjon terminálügyfélt egy Telnet- vagy nyers TCP-kapcsolat létrehozásához a kimeneti stream olvasásához a folyamatból. IP-címként adja meg a 192.168.35.2 értéket, portként pedig a 2342-t.

  5. Nyisson meg egy parancssori felületet a PowerShell vagy egy windowsos szabványos parancssor vagy Linux rendszeren futó parancssor használatával, és paraméterként adja át a .out alkalmazás bináris fájlját a buildből. Ez lehetővé teszi a teljes forráskód hibakeresését.

    Windows parancssor

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

Megjegyzés

Az Azure Sphere SDK több sysroottal rendelkezik , így az alkalmazások különböző API-készleteket célozhatnak meg az alkalmazás futtatókörnyezetének verziójáról, a sysrootsról és a béta API-król. A sysroots az Azure Sphere SDK telepítési mappájában, a Sysroots alatt található.

  1. Állítsa a távoli hibakeresési célt a 192.168.35.2 IP-címre a 2345-ös porton:

    target remote 192.168.35.2:2345

  2. Futtassa a többi kiválasztott gdb-parancsot. A következő parancsok például töréspontot állítanak be a main() értékre való belépéskor, majd a töréspont után folytatják a végrehajtást.

    break main
    
    c
    

    További információ a gdb-vel végzett hibakeresésről : GDB: The GNU Project Debugger (GDB: A GNU-projekt hibakeresője ) vagy a témában számos más forrás egyike.

Következő lépések

Létrehozott egy magas szintű alkalmazást, amely az Azure Sphere-eszközön fut. Érdemes lehet most módosítani. A hardverdefiníciók azt írják le, hogyan szerkeszthet egy hardverdefiníciós JSON-fájlt, és hogyan hozhatja létre újra a társított fejlécfájlt.

Ezután megtudhatja, hogyan helyezheti üzembe magas szintű alkalmazását a felhőből.

Lásd még:

Látogasson el az Azure Sphere katalógusba, amely inspiráló, nem felügyelt és újrafelhasználható Azure Sphere-szkriptek, -segédprogramok és -függvények gyűjteménye.