Share via


Oktatóanyag: Partneralkalmazások létrehozása és hibakeresése

Ez az oktatóanyag bemutatja, hogyan hozhat létre és végezhet hibakeresést egy olyan mintaprojektben, amely egy magas szintű alkalmazást és egy valós idejű kompatibilis alkalmazást is tartalmaz, ahol a két alkalmazás kommunikál a magas szintű A7 mag és a valós idejű M4 mag között. A magas szintű alkalmazásokkal és a valós idejű képes 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:

  • A GNU arm eszközlánc telepítése
  • Hardver beállítása a kimenet megjelenítéséhez
  • Fejlesztés és hibakeresés engedélyezése
  • Az Azure Sphere-mintaadattár klónozása
  • Terminálemulátor indítása a kimenet megtekintéséhez
  • Partneralkalmazások létrehozása, futtatása és hibakeresése

Fontos

Ezek az utasítások feltételezik, hogy olyan hardvert használ, amely követi az MT3620 referenciatábla-tervezési (RDB) hardvert, például a Seeed Studios MT3620 Dev Kitét. Ha eltérő Azure Sphere-hardvert használ, a gyártó dokumentációjában megtudhatja, hogy az UART elérhető-e, és hogyan érheti el. Előfordulhat, hogy hardvert kell beállítania a kimenet eltérő megjelenítéséhez , és frissítenie kell a mintakódot és a app_manifest.json fájl Uarts mezőjét egy másik UART használatához.

Előfeltételek

A GNU Arm Embedded eszközlánc telepítése

  • Visual Studio 2022: Ha a Visual Studio 2022-t használja, telepítse a GNU Arm Embedded Toolchain (arm-none-eabi) eszközt az ARM fejlesztői webhelyéről.
  • Visual Studio 2019: Az eszközlánc automatikusan települ a Visual Studio Azure Sphere-bővítményével a Visual Studio 2019-ben. Ha a Visual Studio 2019-et használja, folytassa a Hardver beállítása a kimenet megjelenítéséhez című témakörrel. Ha azonban manuálisan telepítette a GNU Arm Embedded Toolchain eszközt, a Visual Studio a telepített verziót fogja használni.

Az eszközlánc arm fejlesztői webhelyen való telepítéséhez keresse meg a GNU Arm Embedded toolchain (arm-none-eabi) eszközt, amely tartalmazza az ARM Cortex-M4 processzor fordítóját. Kövesse az ott található utasításokat az operációsrendszer-platform fordítójának letöltéséhez és telepítéséhez.

Alapértelmezés szerint a Visual Studio Code megkeresi az eszközláncot, és meg kell találnia a telepített verziót. Ha az eszközlánchoz kapcsolódó buildelési problémákat tapasztal, ellenőrizze a Beállítások>Beállítások>Bővítmények>AzureSphere jelölőnégyzetet, és győződjön meg arról, hogy az "Azure Sphere: Arm Gnu Path" azonosítja a GNU Arm Embedded toolchain telepítési könyvtárát.

Hardver beállítása a kimenet megjelenítéséhez

Jelenleg minden valós idejű mag támogatja a csak TX-et támogató UART-okat. Az RTApps ezzel az UART-kel küldhet naplókimenetet az eszközről. Az alkalmazásfejlesztés és a hibakeresés során általában szükség van a kimenet olvasására és megjelenítésére. A HelloWorld_RTApp_MT3620_BareMetal minta bemutatja, hogyan írhat egy alkalmazás az UART-ba.

Usb-soros adapter, például AZ FTDI-barát segítségével csatlakoztassa a valós idejű magon lévő UART-et egy USB-porthoz a gépen. A kimenet megjelenítéséhez szüksége lesz egy terminálemulátorra is, amely 115200-8-N-1 terminálbeállításokkal (115200 bps, 8 bit, paritásbitek nélkül, egy stopbittel) hoz létre soros kapcsolatot.

Ha úgy szeretné beállítani a hardvert, hogy egy RTApp kimenetét jelenítse meg, kövesse az alábbi lépéseket. A pin-kód helyének meghatározásához tekintse meg a hardvergyártó dokumentációját. Ha olyan hardvert használ, amely követi az MT3620 referenciatábla-kialakítási (RDB) hardvert, például a Seeed Studios MT3620 Dev Kitét, akkor az RDB-felület fejléceinek megtekintése segíthet meghatározni a PIN-kód helyét.

  1. Csatlakoztassa a GND-t az USB-soros adapteren a fejlesztői készlet GND-hez. Az MT3620 RDB hardveren a GND a 3. fejléc, 2. tű.

  2. Csatlakoztassa az RX-et az USB-soros adapteren az IOM4-0 TX-hez a fejlesztői készleten. Az MT3620 RDB hardveren az IOM4-0 TX a 3. fejléc, 6. tű.

  3. Csatlakoztassa az USB-soros adaptert egy ingyenes USB-porthoz a fejlesztői gépen, és határozza meg, hogy melyik porthoz csatlakozik a soros eszköz.

    • Windows rendszeren indítsa el Eszközkezelő, válassza az Eszközök megtekintése>tároló szerint lehetőséget, és keresse meg az "USB UART" kifejezést. Az FT232R USB UART például az FTDI-barát adaptert jelzi.

    • Linux rendszeren írja be a következő parancsot:

      dmesg | grep ttyUSB
      

      A port neve ttyUSBn, ahol n a port számát jelzi. Ha a dmesg parancs több USB-portot is felsorol, az, amely általában az utolsó csatlakoztatottként jelentett porthoz csatlakozik. A következő példában például a ttyUSB4 értéket kell használnia:

    ~$ dmesg | grep ttyUSB
    [  144.564350] usb 1-1.1.2: FTDI USB Serial Device converter now attached to ttyUSB0
    [  144.564768] usb 1-1.1.2: FTDI USB Serial Device converter now attached to ttyUSB1
    [  144.565118] usb 1-1.1.2: FTDI USB Serial Device converter now attached to ttyUSB2
    [  144.565593] usb 1-1.1.2: FTDI USB Serial Device converter now attached to ttyUSB3
    [  144.570429] usb 1-1.1.3: FTDI USB Serial Device converter now attached to ttyUSB4
    [  254.171871] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
    
  4. Indítsa el a terminálemulátor programot, és nyisson meg egy 115200-8-N-1 terminált az adapter által használt COM-porton. A terminálemulátor dokumentációjában megtudhatja, hogyan adhatja meg a portot és a sebességet.

Fejlesztés és hibakeresés engedélyezése

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 hibakeresé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 hibakeresésre való előkészítése eltávolítja ezt a korlátozást, és betölti a hibakereséshez szükséges szoftvert, és feloldja az eszköz képességeit .

A valós idejű magok hibakereséséhez használja az az sphere device enable-development parancsot. Ez a parancs úgy konfigurálja az eszközt, hogy alkalmazásokat fogadjon a számítógépről a hibakereséshez, és hozzárendeli az eszközt a Fejlesztési eszközcsoporthoz, amely nem engedélyezi a felhőalapú 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.

Windows rendszeren hozzá kell adnia a --enable-rt-core-debugging paramétert, amely betölti a hibakereső kiszolgálókat és az egyes magtípusokhoz szükséges illesztőprogramokat az eszközre.

  1. Ha még nem tette meg, jelentkezzen be az Azure Sphere-be:

    az login
    
  2. Nyisson meg egy parancssori felületet a PowerShell vagy a Windows parancssora rendszergazdai jogosultságokkal. A --enable-rt-core-debugging paraméter rendszergazdai jogosultságot igényel, mert usb-illesztőprogramokat telepít a hibakeresőhöz.

  3. Adja meg a következő parancsot:

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. Zárja be az ablakot a parancs befejeződése után, mert már nincs szükség rendszergazdai jogosultságra. Ajánlott eljárásként mindig a legalacsonyabb jogosultságot kell használnia, amely képes elvégezni egy feladatot.

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.

A mintaalkalmazás letöltése

Az InterCore Communications-alkalmazásokat 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. A keresési eredmények közül válassza az Azure Sphere – Magok közötti kommunikáció lehetőséget.
  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 partneralkalmazások létrehozása és futtatása

  1. Indítsa el a Visual Studiót. Válassza a Helyi mappa megnyitása lehetőséget, és keresse meg azt a mappát, amelybe kibontotta az IntercoreComms alkalmazásokat.

    Fontos

    Ha a Visual Studio 2022 17.1-es vagy újabb verzióját használja, és a 22.02-es Azure Sphere-kiadás előtt kibontotta az IntercoreComms-mintát, hozzá kell adnia egy CMakeWorkspaceSettings.json fájlt a legfelső szintű projektmappához.

  2. Ha nem MT3620 RDB-t használ, frissítse az alkalmazások app_manifest.json fájljait , valamint a hardverdefiníciós fájlt és CMakeLists.txt fájlt , hogy a magas szintű alkalmazás megfeleljen a hardvernek.

  3. Ha a CMake létrehozása nem indul el automatikusan, válassza ki a CMakeLists.txt fájlt.

  4. A Visual Studióban aKimenet> megjelenítése kimenetének megtekintése> akövetkezőből: CMake-kimenetnek meg kell jelenítenie a és CMake generation finishedaz üzeneteitCMake generation started.

  5. Válassza azÖsszes összeállítása> lehetőséget. Ha a menü nincs jelen, nyissa meg a Megoldáskezelő, kattintson a jobb gombbal a CMakeLists.txt fájlra, és válassza a Létrehozás parancsot. A IntercoreComms_HL & IntercoreComms RT-alkalmazások kimeneti helye megjelenik a Kimenet ablakban.

  6. Válassza az Indítási elem>intercoreComms (Minden mag) lehetőséget.

  7. Válassza a Hibakeresés>hibakeresése lehetőséget, vagy nyomja le az F5 billentyűt az alkalmazások üzembe helyezéséhez és hibakereséséhez.

  8. A Kimenet ablakban válassza ki a kimenetet a menüből , majd válassza az Eszközkimenet lehetőséget. A Kimenet ablakban a magas szintű alkalmazáskimenetnek kell megjelennie:

    Remote debugging from host 192.168.35.1, port 58817
    High-level intercore comms application
    Sends data to, and receives data from a real-time capable application.
    Received 19 bytes: rt-app-to-hl-app-07
    Sending: hl-app-to-rt-app-00
    Sending: hl-app-to-rt-app-01
    
  9. A csatlakoztatott terminálemulátornak a valós idejű program kimenetét kell megjelenítenie:

    Sender: 25025d2c-66da-4448-bae1-ac26fcdd3627
    Message size: 19 bytes:
    Hex: 68:6c:2d:61:70:70:2d:74:6f:2d:72:74:2d:61:70:70:2d:30:30
    Text: hl-app-to-rt-app-00
    Sender: 25025d2c-66da-4448-bae1-ac26fcdd3627
    Message size: 19 bytes:
    Hex: 68:6c:2d:61:70:70:2d:74:6f:2d:72:74:2d:61:70:70:2d:30:31
    Text: hl-app-to-rt-app-01
    
  10. A hibakereső használatával töréspontokat állíthat be, megvizsgálhatja a változókat, és kipróbálhat más hibakeresési feladatokat.

  1. A Visual Studio Code-ban nyissa meg azt a mappát, amelyben kibontotta az IntercoreComms-alkalmazásokat. A Visual Studio Code észleli az intercore.code-workspace fájlt, és megkérdezi, hogy meg szeretné-e nyitni a munkaterületet. Válassza a Munkaterület megnyitása lehetőséget a valós idejű és a magas szintű alkalmazás egyidejű megnyitásához.

  2. Ha nem MT3620 RDB-t használ, frissítse az alkalmazások app_manifest.json fájljait , valamint a hardverdefiníciós fájlt és CMakeLists.txt fájlt , hogy a magas szintű alkalmazás megfeleljen a hardvernek.

  3. Nyomja le az F5 billentyűt a hibakereső elindításához. 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. Az Azure Sphere kimeneti ablakában a következőnek kell megjelennie: "Rendszerkép üzembe helyezése..." majd az SDK és a fordító elérési útjai.

  5. A kimeneti ablakban a magas szintű alkalmazáskimenetnek kell megjelennie:

    Remote debugging from host 192.168.35.1, port 58817
    High-level intercore comms application
    Sends data to, and receives data from a real-time capable application.
    Received 19 bytes: rt-app-to-hl-app-07
    Sending: hl-app-to-rt-app-00
    Sending: hl-app-to-rt-app-01
    
  6. A csatlakoztatott terminálemulátornak a valós idejű program kimenetét kell megjelenítenie:

    Sender: 25025d2c-66da-4448-bae1-ac26fcdd3627
    Message size: 19 bytes:
    Hex: 68:6c:2d:61:70:70:2d:74:6f:2d:72:74:2d:61:70:70:2d:30:30
    Text: hl-app-to-rt-app-00
    Sender: 25025d2c-66da-4448-bae1-ac26fcdd3627
    Message size: 19 bytes:
    Hex: 68:6c:2d:61:70:70:2d:74:6f:2d:72:74:2d:61:70:70:2d:30:31
    Text: hl-app-to-rt-app-01
    
  7. A Visual Studio Code hibakeresési funkcióival töréspontokat állíthat be, megvizsgálhatja a változókat, és kipróbálhat más hibakeresési feladatokat.

Hibaelhárítás

Előfordulhat, hogy az alkalmazás elkezdi a végrehajtást, mielőtt az OpenOCD kapcsolatot létesítene. Emiatt előfordulhat, hogy a kód elején beállított töréspontok kimaradnak. Ennek egy egyszerű megkerülő megoldása, ha késlelteti az alkalmazás indítását, amíg az OpenOCD nem csatlakozik.

  1. Szúrja be a következő kódot az RTCoreMain alkalmazás belépési pontjának elejére. Ez azt eredményezi, hogy az alkalmazás mindaddig hurokban while marad, amíg a változó fértéke true (igaz) lesz.

    static _Noreturn void RTCoreMain(void)
    {
      .
      .
      .
     volatile bool f = false;
     while (!f) {
        // empty.
     }
      .
      .
      .
    }
    
  2. Nyomja le az F5 billentyűt az alkalmazás hibakereséssel való elindításához, majd a végrehajtásba való betöréshez.

  3. A Helyiek hibakeresési panelen módosítsa a értékét f nulláról egyre.

  4. Haladja végig a kódot a szokásos módon.

A parancssori felülettel történő létrehozáskor először a valós idejű kompatibilis alkalmazást kell létrehozni és üzembe helyezni, majd a magas szintű alkalmazást kell létrehozni és üzembe helyezni.

A valós idejű kompatibilis alkalmazás létrehozása és üzembe helyezése

  1. Lépjen arra a mappára, amelybe kibontotta az IntercoreComms-alkalmazásokat, majd válassza az IntercoreComms/IntercoreComms_RTApp_MT3620_BareMetal mappát.

  2. Nyissa meg a app_manifest.json fájlt, és ellenőrizze, hogy a magas szintű alkalmazás összetevő-azonosítója megjelenik-e az AllowedApplicationConnections képességben.

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

  4. 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 az IntercoreComms RTApp CMake parancsait mutatják be:

    Windows parancssor

     cmake ^
    --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    

    Windows PowerShell

     cmake `
    --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    
  5. A projekt buildkönyvtárában a parancssorban 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.

  6. Törölje az eszközön már üzembe helyezett alkalmazásokat:

    az sphere device sideload delete
    
  7. A projekt buildkönyvtárából a parancssorba töltse be a ninja által létrehozott rendszerképcsomagot:

    az sphere device sideload deploy --image-package <path-to-imagepackage>
    

    Az alkalmazás nem sokkal a betöltése után elindul.

  8. Kérje le a rendszerkép összetevő-azonosítóját:

    az sphere image-package show --image-package <path-to-imagepackage>
    

    A parancs visszaadja a képcsomag összes metaadatait. Az alkalmazás összetevő-azonosítója az Alkalmazás képtípusának Identitás szakaszában jelenik meg. Például:

    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...
    

A magas szintű alkalmazás létrehozása és üzembe helyezése

  1. Lépjen arra a mappára, amelybe kibontotta az IntercoreComms-alkalmazásokat, majd válassza az IntercoreComms/IntercoreComms_HighLevelApp mappát.

  2. Nyissa meg a app_manifest.json fájlt, és ellenőrizze, hogy az RTApp összetevő-azonosítója megjelenik-e az AllowedApplicationConnections képességben.

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

  4. 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 az IntercoreComms magas szintű alkalmazás CMake-parancsait mutatják be.

    Windows parancssor

     cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    

    Windows PowerShell

     cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    
  5. A projekt buildkönyvtárában a parancssorban 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.

  6. A projekt buildkönyvtárából a parancssorba töltse be a ninja által létrehozott rendszerképcsomagot:

    az sphere device sideload deploy --image-package <package-name>
    

    Az alkalmazás nem sokkal a betöltése után elindul.

  7. Kérje le a rendszerkép összetevő-azonosítóját:

    az sphere image-package show --image-package <path-to-imagepackage>
    

    A parancs visszaadja a képcsomag összes metaadatait. Az alkalmazás összetevő-azonosítója az Alkalmazás képtípusának Identitás szakaszában jelenik meg. Például:

    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...
    

A partneralkalmazások futtatása engedélyezett hibakereséssel

  1. Állítsa le a valós idejű alkalmazást, ha fut.

    az sphere device app stop --component-id <component id>
    
  2. Indítsa újra az alkalmazást hibakeresésre.

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

    Ez a parancs azt a magot adja vissza, amelyen az alkalmazás fut.

      <component id>
      App state: running
      Core        : Real-time 0
    
  3. Lépjen annak a sysrootnak az Openocd mappájába, amellyel az alkalmazást létrehozták. A sysroots telepítése az Azure Sphere SDK telepítési mappájában történik. Windows rendszeren például a mappa alapértelmezés szerint a és a linuxos C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\openocd helyen van telepítve, a következő helyen /opt/azurespheresdk/Sysroots/*sysroot*/tools/sysroots/x86_64-pokysdk-linux: .

  4. Futtassa a parancsot openocd az alábbi példában látható módon. A példa feltételezi, hogy az alkalmazás a core 0-n fut. Ha az alkalmazás az 1. magon fut, cserélje le a "targets io0" kifejezést a "targets io1" kifejezésre.

       openocd -f mt3620-rdb-ftdi.cfg -f mt3620-io0.cfg -c "gdb_memory_map disable" -c "gdb_breakpoint_override hard" -c init -c "targets io0" -c halt -c "targets"
    
  5. Nyisson meg egy új Azure Sphere parancssort (Klasszikus Windows Azure Sphere parancssori felület), standard parancssort, PowerShellt (Windows Azure CLI) vagy terminálablakot (Linux).

  6. Keresse meg a valós idejű alkalmazás .out fájlját tartalmazó mappát, és indítsa el a fájlt arm-none-eabi-gdb, amely a GNU Arm Embedded toolchain része:

    Windows parancssor

    "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
    

    Windows PowerShell

     & "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
    
  7. Az OpenOCD-kiszolgáló GDB-kiszolgálói felületet biztosít a következőn: :4444. Állítsa be a hibakeresés célját.

    target remote :4444

  8. Mostantól gdb-parancsokat futtathat a valós idejű alkalmazáson. Adjon hozzá egy töréspontot a HandleSendTimerDeferred függvényhez:

    break HandleSendTimerDeferred
    
  9. A csatlakoztatott terminálemulátornak a valós idejű képes alkalmazás kimenetét kell megjelenítenie.

  10. Nyisson meg egy új Azure Sphere parancssort (Klasszikus Windows Azure Sphere parancssori felület), standard parancssort, PowerShellt (Windows Azure CLI) vagy terminálablakot (Linux).

  11. Lépjen a magas szintű .imagepackage fájlt tartalmazó mappába.

  12. Állítsa le a magas szintű alkalmazást, ha fut.

    az sphere device app stop --component-id <component id>
    
  13. Indítsa újra a magas szintű alkalmazást hibakereséssel.

    az sphere device app start --debug-mode true --component-id <component id> --debug-mode
    
  14. Nyisson meg egy terminálemulátort , és hozzon létre egy Telnet- vagy TCP-kapcsolatot a 192.168.35.2-es porton a 2342-es porton a magas szintű alkalmazás kimenetének megtekintéséhez.

  15. Indítsa el a gdb-t a következő paranccsal:

    Windows parancssor

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

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_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ó.

  16. Á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

  17. Adjon hozzá egy töréspontot a SendMessageToRTApp függvényhez:

    break SendMessageToRTApp

  18. A folytatáshoz írja be c a parancsot, figyelje meg a kimenetet a Telnet/TCP-terminálban, majd váltson a valós idejű alkalmazás hibakeresési munkamenetét tartalmazó parancssorra vagy terminálablakra.

  19. Írja be c a parancsot a folytatáshoz, és figyelje meg a kimenetet a csatlakoztatott soros munkamenetben.

A hibakeresési munkamenetek között oda-vissza dolgozhat, válthat a valós idejű és a magas szintű alkalmazás között. A következőhöz hasonló kimenetnek kell megjelennie a két kimeneti ablakban:

Starting debugger....
                     Process /mnt/apps/25025d2c-66da-4448-bae1-ac26fcdd3627/bin/app created; pid = 40
                     Listening on port 2345
                                           Remote debugging from host 192.168.35.1, port 56522
              High-level intercore comms application
                                                    Sends data to, and receives data from a real-time capable application.
                                          Sending: hl-app-to-rt-app-00
                                                                      Sending: hl-app-to-rt-app-01
IntercoreComms_RTApp_MT3620_BareMetal
App built on: Nov 17 2020, 09:25:19
Sender: 25025d2c-66da-4448-bae1-ac26fcdd3627
Message size: 19 bytes:
Hex: 68:6c:2d:61:70:70:2d:74:6f:2d:72:74:2d:61:70:70:2d:30:30
Text: hl-app-to-rt-app-00

Az egyes hibakeresési munkamenetek befejezéséhez írja be q a következőt: gdb prompt.

Következő lépések