Sdílet prostřednictvím


Kurz: Sestavování a ladění partnerských aplikací

V tomto kurzu se dozvíte, jak sestavit a ladit ukázkový projekt, který zahrnuje aplikaci vysoké úrovně i aplikaci podporující v reálném čase, kde obě aplikace komunikují mezi jádrem A7 vysoké úrovně a jádrem M4 v reálném čase. Základní informace o aplikacích vysoké úrovně a aplikacích podporujících v reálném čase najdete v tématu Přehled aplikací Azure Sphere .

V tomto kurzu se naučíte:

  • Instalace sady nástrojů GNU Arm
  • Nastavení hardwaru pro zobrazení výstupu
  • Povolení vývoje a ladění
  • Klonování ukázkového úložiště Azure Sphere
  • Spuštění emulátoru terminálu pro zobrazení výstupu
  • Sestavení, spuštění a ladění dvojice partnerských aplikací

Důležité

Tyto pokyny předpokládají, že používáte hardware, který se řídí hardwarem mt3620 pro návrh referenční desky (RDB), jako je sada MT3620 Dev Kit od Společnosti Seeed Studios. Pokud používáte jiný hardware Azure Sphere, podívejte se do dokumentace výrobce, abyste zjistili, jestli je UART vystavený a jak k němu získat přístup. Možná budete muset nastavit hardware tak, aby zobrazoval výstup jinak, a aktualizovat vzorový kód a pole Uarts souboru app_manifest.json tak, aby používaly jiný UART.

Požadavky

Instalace sady NÁSTROJŮ GNU Arm Embedded Toolchain

  • Visual Studio 2022: Pokud používáte Visual Studio 2022, nainstalujte si sadu NÁSTROJŮ GNU Arm Embedded Toolchain (arm-none-eabi) z webu pro vývojáře Arm.
  • Visual Studio 2019: Sada nástrojů se automaticky nainstaluje s rozšířením Azure Sphere pro Visual Studio v sadě Visual Studio 2019. Pokud používáte Visual Studio 2019, pokračujte nastavením hardwaru pro zobrazení výstupu. Pokud jste ale sadu NÁSTROJŮ GNU Arm Embedded nainstalovali ručně, visual Studio použije nainstalovanou verzi.

Pokud chcete nainstalovat sadu nástrojů na webu pro vývojáře ARM, vyhledejte sadu nástrojů GNU Arm Embedded Toolchain (arm-none-eabi), která obsahuje kompilátor procesoru ARM Cortex-M4. Podle pokynů si stáhněte a nainstalujte kompilátor pro vaši platformu operačního systému.

Visual Studio Code ve výchozím nastavení hledá sadu nástrojů a měl by najít nainstalovanou verzi. Pokud narazíte na problémy se sestavením související s sadou nástrojů, zkontrolujterozšíření>nastavení>předvoleb>AzureSphere a ujistěte se, že "Azure Sphere: Arm Gnu Path" identifikuje instalační adresář sady nástrojů GNU Arm Embedded Toolchain.

Nastavení hardwaru pro zobrazení výstupu

V současné době každé jádro v reálném čase podporuje UART pouze TX. RTApps může tento objekt UART použít k odesílání výstupu protokolu ze zařízení. Během vývoje a ladění aplikací obvykle potřebujete způsob, jak číst a zobrazovat výstup. Ukázka HelloWorld_RTApp_MT3620_BareMetal ukazuje, jak může aplikace zapisovat do UART.

Pomocí adaptéru USB na sériový port, jako je FTDI Friend, připojte UART jádra v reálném čase k portu USB na vašem počítači. K zobrazení výstupu budete také potřebovat emulátor terminálu k navázání sériového připojení s nastavením terminálu 115200-8-N-1 (115200 b/s, 8 bitů, bez parit, jeden zar bit).

Pokud chcete nastavit hardware tak, aby zobrazoval výstup z aplikace RTApp, postupujte takto. Umístění špendlíků zjistíte v dokumentaci od výrobce hardwaru. Pokud používáte hardware, který se řídí hardwarem mt3620 pro návrh referenční desky (RDB), jako je sada MT3620 Dev Kit od Seeed Studios, může vám při pohledu na hlavičky rozhraní RDB pomoct určit umístění špendlíků.

  1. Připojte GND pomocí adaptéru USB na sériový adaptér ke GND ve vývojové sadě. Na hardwaru MT3620 RDB je GND header 3, pin 2.

  2. Připojte RX na adaptéru USB-to-serial k IOM4-0 TX ve vývojové sadě. Na hardwaru MT3620 RDB je IOM4-0 TX header 3, pin 6.

  3. Připojte adaptér USB na sériový port k volnému portu USB na vývojovém počítači a určete, ke kterému portu je sériové zařízení připojené.

    • Ve Windows spusťte Správce zařízení, vyberte Zobrazit>zařízení podle kontejneru a vyhledejte USB UART. Například FT232R USB UART označuje adaptér FTDI Friend.

    • V Linuxu zadejte následující příkaz:

      dmesg | grep ttyUSB
      

      Port by měl mít název ttyUSBn, kde n označuje číslo portu. Pokud příkaz dmesg vypíše několik portů USB, ten, který je připojený k obvykle poslednímu portu hlášenému jako připojený. Například v následujícím příkladu byste použili ttyUSB4:

    ~$ 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. Spusťte program emulátoru terminálu a otevřete terminál 115200-8-N-1 na portu COM používaném adaptérem. Informace o tom, jak určit port a rychlost, najdete v dokumentaci k emulátoru terminálu.

Povolení vývoje a ladění

Než budete moct vytvořit ukázkovou aplikaci na zařízení Azure Sphere nebo pro ni vyvíjet nové aplikace, musíte povolit vývoj a ladění. Ve výchozím nastavení jsou zařízení Azure Sphere "uzamčená"; to znamená, že neumožňují načítání aplikací ve vývoji z počítače a neumožňují ladění aplikací. Příprava zařízení pro ladění toto omezení odebere a načte software potřebný k ladění a odemkne funkce zařízení .

K ladění jader v reálném čase použijte příkaz az sphere device enable-development . Tento příkaz nakonfiguruje zařízení tak, aby přijímalo aplikace z počítače pro ladění, a přiřadí ho do skupiny zařízení Vývoj, která nepovoluje aktualizace cloudových aplikací. Během vývoje a ladění aplikací byste měli zařízení ponechat v této skupině, aby aktualizace cloudových aplikací nepřepsaly vyvíjenou aplikaci.

Ve Windows musíte do zařízení přidat --enable-rt-core-debugging parametr , který načte ladicí servery a požadované ovladače pro každý typ jádra.

  1. Pokud jste to ještě neudělali, přihlaste se k Azure Sphere:

    az login
    
  2. Otevřete rozhraní příkazového řádku pomocí PowerShellu nebo příkazového řádku Windows s oprávněními správce. Parametr --enable-rt-core-debugging vyžaduje oprávnění správce, protože instaluje ovladače USB pro ladicí program.

  3. Zadejte následující příkaz:

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. Po dokončení příkazu zavřete okno, protože oprávnění správce se už nevyžadují. Osvědčeným postupem je vždy použít nejnižší oprávnění, které může úkol provést.

Pokud příkaz az sphere device enable-development selže, nápovědu najdete v tématu Řešení potíží s Azure Sphere .

Stažení ukázkové aplikace

Aplikace InterCore Communications si můžete stáhnout takto:

  1. Nasměrujte prohlížeč na Microsoft Samples Browser.
  2. Do pole Search zadejte "Azure Sphere".
  3. Ve výsledcích hledání vyberte Azure Sphere – Komunikace mezi jádry .
  4. Vyberte Stáhnout ZIP.
  5. Otevřete stažený soubor a extrahujte ho do místního adresáře.

Sestavení a spuštění partnerských aplikací

  1. Spusťte Visual Studio. Vyberte Otevřít místní složku a přejděte do složky, do které jste extrahovali aplikace IntercoreComms.

    Důležité

    Pokud používáte Visual Studio 2022 verze 17.1 nebo novější a extrahovali jste ukázku IntercoreComms před vydáním Azure Sphere 22.02, musíte do složky projektu nejvyšší úrovně přidat soubor CMakeWorkspaceSettings.json.

  2. Pokud nepoužíváte sadu MT3620 RDB, aktualizujte soubory app_manifest.json pro aplikace i definiční soubor hardwaru a CMakeLists.txt soubor , aby aplikace vysoké úrovně odpovídala vašemu hardwaru.

  3. Pokud se generování CMake nespustí automaticky, vyberte soubor CMakeLists.txt.

  4. V sadě VisualStudio by > se měly zobrazitvýstupy> zobrazenívýstupu z: Výstup CMake by měl zobrazit zprávy CMake generation started a CMake generation finished.

  5. Vyberte BuildBuild All (Sestavit> vše). Pokud nabídka není k dispozici, otevřete Průzkumník řešení, klikněte pravým tlačítkem na soubor CMakeLists.txt a vyberte Sestavit. Umístění výstupu aplikací IntercoreComms_HL & IntercoreComms RT se zobrazí v okně Výstup .

  6. Vyberte Select Startup ItemIntercoreComms (All cores) (Vybrat spouštěcí položku IntercoreComms (Všechna jádra).)>

  7. Vyberte Ladit>Ladit nebo stiskněte klávesu F5 a nasaďte a ladit aplikace.

  8. V okně Výstup v nabídce Vyberte výstup vyberte Výstup zařízení. V okně Výstup by se měl zobrazit výstup aplikace vysoké úrovně:

    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. Emulátor připojeného terminálu by měl zobrazit výstup z programu podporujícího v reálném čase:

    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. Pomocí ladicího programu můžete nastavit zarážky, kontrolovat proměnné a vyzkoušet další úlohy ladění.

  1. V editoru Visual Studio Code otevřete složku, do které jste extrahovali aplikace IntercoreComms. Visual Studio Code zjistí soubor intercore.code-workspace a zeptá se, jestli chcete pracovní prostor otevřít. Výběrem možnosti Otevřít pracovní prostor otevřete aplikaci v reálném čase i aplikaci vysoké úrovně najednou.

  2. Pokud nepoužíváte sadu MT3620 RDB, aktualizujte soubory app_manifest.json pro aplikace i definiční soubor hardwaru a CMakeLists.txt soubor , aby aplikace vysoké úrovně odpovídala vašemu hardwaru.

  3. Stisknutím klávesy F5 spusťte ladicí program. Pokud projekt ještě nebyl sestaven nebo pokud se změnily soubory a vyžaduje se opětovné sestavení, visual Studio Code projekt před zahájením ladění sestaví.

  4. V okně výstupu Azure Sphere by se mělo zobrazit "Nasazení image..." následované cestami k sadě SDK a kompilátoru.

  5. V okně výstupu by se měl zobrazit výstup aplikace vysoké úrovně:

    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. Emulátor připojeného terminálu by měl zobrazit výstup z programu podporujícího v reálném čase:

    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. Pomocí funkcí ladění editoru Visual Studio Code můžete nastavit zarážky, kontrolovat proměnné a vyzkoušet další úlohy ladění.

Řešení potíží

Aplikace se může spustit dříve, než OpenOCD vytvoří připojení. V důsledku toho můžou chybět zarážky nastavené na začátku kódu. Jednoduchým alternativním řešením je odložit spuštění aplikace, dokud se OpenOCD nespustí.

  1. Na začátek vstupního bodu aplikace RTCoreMain vložte následující kód. To způsobí, že aplikace zadá a zůstane ve smyčce while , dokud proměnná f nebude nastavena na true.

    static _Noreturn void RTCoreMain(void)
    {
      .
      .
      .
     volatile bool f = false;
     while (!f) {
        // empty.
     }
      .
      .
      .
    }
    
  2. Stisknutím klávesy F5 spusťte aplikaci s laděním a pak přerušíte spuštění.

  3. V podokně ladění Místní hodnoty změňte hodnotu f z nuly na jednu.

  4. Projděte kód jako obvykle.

Při sestavování pomocí rozhraní příkazového řádku nejprve sestavíte a nasadíte aplikaci podporující v reálném čase a pak sestavíte a nasadíte aplikaci vysoké úrovně.

Sestavení a nasazení aplikace podporující v reálném čase

  1. Přejděte do složky, do které jste extrahovali aplikace IntercoreComms, a vyberte složku IntercoreComms/IntercoreComms_RTApp_MT3620_BareMetal.

  2. Otevřete soubor app_manifest.json a ověřte, že se ID komponenty aplikace vysoké úrovně zobrazuje ve funkci AllowedApplicationConnections.

  3. Otevřete rozhraní příkazového řádku pomocí PowerShellu, příkazového řádku Windows nebo linuxového příkazového prostředí. Přejděte do adresáře sestavení projektu.

  4. V adresáři sestavení projektu na příkazovém řádku spusťte CMake s následujícími parametry:

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

      Název předvolby konfigurace sestavení definovaný v CMakePresets.json.

    • --build <cmake-path>

      Binární adresář, který obsahuje mezipaměť CMake. Pokud například spustíte CMake na ukázce Azure Sphere, příkaz sestavení bude cmake --build out/ARM-Debug.

    • <source-path>

      Cesta k adresáři, který obsahuje zdrojové soubory pro ukázkovou aplikaci. V tomto příkladu se úložiště ukázek Azure Sphere stáhlo do adresáře s názvem AzSphere.

      Parametry CMake jsou oddělené mezerami. Znak pokračování řádku (^ pro příkazový řádek Windows, \ pro příkazový řádek Linuxu nebo ' pro PowerShell) se dá použít pro čitelnost, ale nevyžaduje se.

    Následující příklady ukazují příkazy CMake pro IntercoreComms RTApp:

    Příkazový řádek Windows

     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. V adresáři sestavení projektu spusťte na příkazovém řádku příkaz Ninja, který sestaví aplikaci a vytvoří soubor balíčku image.

    ninja -C out/ARM-Debug
    

    Ninja umístí výsledné soubory aplikace a .imagepackage do zadaného adresáře.

    Ninja můžete vyvolat také prostřednictvím CMake pomocí následujícího příkazu:

    cmake --build out/<binary-dir>
    

    Nastavte <binary-dir> na binární adresář, který obsahuje mezipaměť CMake. Pokud například spustíte CMake na ukázce Azure Sphere, příkaz sestavení bude cmake --build out/ARM-Debug.

    Při řešení potíží, zejména po provedení jakýchkoli změn příkazů CMake, odstraňte celé sestavení a zkuste to znovu.

  6. Odstraňte všechny aplikace, které už jsou na zařízení nasazené:

    az sphere device sideload delete
    
  7. Z adresáře sestavení projektu na příkazovém řádku načtěte balíček image, který ninja vytvořil:

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

    Aplikace se začne spouštět brzy po načtení.

  8. Získejte ID komponenty pro image:

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

    Příkaz vrátí všechna metadata balíčku image. ID komponenty aplikace se zobrazí v části Identita pro typ bitové kopie aplikace. Příklad:

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

Sestavení a nasazení aplikace vysoké úrovně

  1. Přejděte do složky, do které jste extrahovali aplikace IntercoreComms, a vyberte složku IntercoreComms/IntercoreComms_HighLevelApp.

  2. Otevřete soubor app_manifest.json a ověřte, že se ID komponenty RTApp zobrazuje ve funkci AllowedApplicationConnections.

  3. Otevřete rozhraní příkazového řádku pomocí PowerShellu, příkazového řádku Windows nebo linuxového příkazového prostředí. Přejděte do adresáře sestavení projektu.

  4. V adresáři sestavení projektu na příkazovém řádku spusťte CMake s následujícími parametry:

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

      Název předvolby konfigurace sestavení definovaný v CMakePresets.json.

    • --build <cmake-path>

      Binární adresář, který obsahuje mezipaměť CMake. Pokud například spustíte CMake na ukázce Azure Sphere, příkaz sestavení bude cmake --build out/ARM-Debug.

    • <source-path>

      Cesta k adresáři, který obsahuje zdrojové soubory pro ukázkovou aplikaci. V tomto příkladu se úložiště ukázek Azure Sphere stáhlo do adresáře s názvem AzSphere.

      Parametry CMake jsou oddělené mezerami. Znak pokračování řádku (^ pro příkazový řádek Windows, \ pro příkazový řádek Linuxu nebo ' pro PowerShell) se dá použít pro čitelnost, ale nevyžaduje se.

    Následující příklady ukazují příkazy CMake pro aplikaci IntercoreComms vysoké úrovně.

    Příkazový řádek Windows

     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. V adresáři sestavení projektu spusťte na příkazovém řádku příkaz Ninja, který sestaví aplikaci a vytvoří soubor balíčku image.

    ninja -C out/ARM-Debug
    

    Ninja umístí výsledné soubory aplikace a .imagepackage do zadaného adresáře.

    Ninja můžete vyvolat také prostřednictvím CMake pomocí následujícího příkazu:

    cmake --build out/<binary-dir>
    

    Nastavte <binary-dir> na binární adresář, který obsahuje mezipaměť CMake. Pokud například spustíte CMake na ukázce Azure Sphere, příkaz sestavení bude cmake --build out/ARM-Debug.

    Při řešení potíží, zejména po provedení jakýchkoli změn příkazů CMake, odstraňte celé sestavení a zkuste to znovu.

  6. Z adresáře sestavení projektu na příkazovém řádku načtěte balíček image, který ninja vytvořil:

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

    Aplikace se začne spouštět brzy po načtení.

  7. Získejte ID komponenty pro image:

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

    Příkaz vrátí všechna metadata balíčku image. ID komponenty aplikace se zobrazí v části Identita pro typ bitové kopie aplikace. Příklad:

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

Spouštění partnerských aplikací s povoleným laděním

  1. Zastavte aplikaci v reálném čase, pokud je spuštěná.

    az sphere device app stop --component-id <component id>
    
  2. Znovu spusťte aplikaci pro ladění.

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

    Tento příkaz vrátí jádro, na kterém aplikace běží.

      <component id>
      App state: running
      Core        : Real-time 0
    
  3. Přejděte do složky Openocd pro složku sysroot, se kterou byla aplikace vytvořena. Sysroots se instalují do instalační složky sady Azure Sphere SDK. Například ve Windows je složka ve výchozím nastavení nainstalovaná v C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\openocd a v Linuxu na adrese /opt/azurespheresdk/Sysroots/*sysroot*/tools/sysroots/x86_64-pokysdk-linux.

  4. Spusťte openocd , jak ukazuje následující příklad. Příklad předpokládá, že aplikace běží na jádru 0. Pokud aplikace běží na jádru 1, nahraďte "targets io0" "targets io1".

       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. Otevřete nový příkazový řádek Azure Sphere (Klasické rozhraní příkazového řádku Windows Azure Sphere), standardní příkazový řádek nebo PowerShell (Windows Azure CLI) nebo okno terminálu (Linux).

  6. Přejděte do složky, která obsahuje soubor .out aplikace podporující v reálném čase, a spusťte arm-none-eabi-gdb, který je součástí sady nástrojů GNU Arm Embedded Toolchain:

    Příkazový řádek Windows

    "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. Server OpenOCD poskytuje rozhraní serveru GDB na serveru :4444. Nastavte cíl ladění.

    target remote :4444

  8. Teď můžete spouštět příkazy gdb do aplikace podporující v reálném čase. Přidejte zarážku do funkce HandleSendTimerDeferred:

    break HandleSendTimerDeferred
    
  9. Emulátor připojeného terminálu by měl zobrazit výstup z aplikace podporující v reálném čase.

  10. Otevřete nový příkazový řádek Azure Sphere (Klasické rozhraní příkazového řádku Windows Azure Sphere), standardní příkazový řádek nebo PowerShell (Windows Azure CLI) nebo okno terminálu (Linux).

  11. Přejděte do složky, která obsahuje soubor .imagepackage aplikace vysoké úrovně.

  12. Zastavte aplikaci vysoké úrovně, pokud je spuštěná.

    az sphere device app stop --component-id <component id>
    
  13. Znovu spusťte aplikaci vysoké úrovně pomocí ladění.

    az sphere device app start --debug-mode true --component-id <component id> --debug-mode
    
  14. Otevřete emulátor terminálu a navazte připojení Telnet nebo TCP k 192.168.35.2 na portu 2342, abyste zobrazili výstup aplikace vysoké úrovně.

  15. Spusťte gdb pomocí následujícího příkazu:

    Příkazový řádek Windows

    "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
    

    Poznámka

    Sada Azure Sphere SDK se dodává s několika kořeny systému, aby aplikace mohly cílit na různé sady rozhraní API, jak je popsáno v tématu Verze modulu runtime aplikací, sysroots a beta rozhraní API. Sysroots se instalují do instalační složky sady Azure Sphere SDK v části Sysroots.

  16. Nastavte cíl vzdáleného ladění na IP adresu 192.168.35.2 na portu 2345:

    target remote 192.168.35.2:2345

  17. Přidejte zarážku do funkce SendMessageToRTApp:

    break SendMessageToRTApp

  18. Pokračujte zadáním c příkazu, sledujte výstup v terminálu Telnet/TCP a pak přepněte na příkazový řádek nebo okno terminálu obsahující relaci ladění aplikací v reálném čase.

  19. Pokračujte zadáním c příkazu a sledujte výstup v připojené sériové relaci.

Mezi ladicími relacemi můžete pracovat tam a zpět a přepínat mezi aplikací podporujícími v reálném čase a aplikací vysoké úrovně. Ve dvou oknech výstupu by se měl zobrazit výstup podobný následujícímu:

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

Pokud chcete ukončit každou ladicí relaci, zadejte q do příkazového řádku gdb příkaz .

Další kroky