Tutorial: Aplikasi mitra build dan debug

Tutorial ini memperlihatkan cara menyusun dan men-debug proyek sampel yang menyertakan aplikasi tingkat tinggi dan aplikasi berkemampuan real-time, di mana dua aplikasi berkomunikasi antara inti A7 tingkat tinggi dan inti M4 real-time. Lihat Gambaran umum aplikasi Azure Sphere untuk informasi dasar tentang aplikasi tingkat tinggi dan aplikasi berkemampuan real-time.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Instal toolchain Arm GNU
  • Menyiapkan perangkat keras untuk menampilkan output
  • Mengaktifkan pengembangan dan proses debug
  • Mengkloning repo sampel Azure Sphere
  • Memulai emulator terminal untuk melihat output
  • Menyusun, menjalankan, dan men-debug sepasang aplikasi mitra

Penting

Instruksi ini menganggap Anda menggunakan perangkat keras yang mengikuti perangkat keras desain papan referensi (RDB) MT3620, seperti MT3620 Dev Kit dari Seeed Studios. Jika Anda menggunakan perangkat keras Azure Sphere yang berbeda, hubungi dokumentasi produsen untuk mengetahui apakah UART terekspos dan cara mengaksesnya. Anda mungkin perlu menyiapkan perangkat keras untuk menampilkan output secara berbeda dan memperbarui kode sampel dan bidang Uart dari file app_manifest.json untuk menggunakan UART yang berbeda.

Prasyarat

Instal Toolchain GNU Arm Embedded

  • Visual Studio 2022: Jika Anda menggunakan Visual Studio 2022, instal Toolchain GNU Arm Embedded (arm-none-eabi) dari situs web pengembang Arm.
  • Visual Studio 2019: Toolchain secara otomatis diinstal dengan ekstensi Azure Sphere untuk Visual Studio di Visual Studio 2019. Jika Anda menggunakan Visual Studio 2019, lanjutkan ke Menyiapkan perangkat keras untuk menampilkan output. Namun, jika Anda menginstal Toolchain GNU Arm Embedded secara manual, Visual Studio akan menggunakan versi yang Anda instal.

Untuk menginstal toolchain di situs web pengembang Arm, temukan Toolchain GNU Arm Embedded (arm-none-eabi) yang menyertakan kompilator untuk prosesor ARM Cortex-M4. Ikuti instruksi di sana untuk mengunduh dan menginstal kompiler untuk platform OS Anda.

Secara default, Visual Studio Code mencari toolchain dan akan menemukan versi yang Anda instal. Jika Anda mengalami masalah build yang terkait dengan toolchain, periksaEkstensi>Pengaturan>Preferensi>AzureSphere untuk memastikan bahwa "Azure Sphere: Arm Gnu Path" mengidentifikasi direktori penginstalan Toolchain GNU Arm Embedded.

Menyiapkan perangkat keras untuk menampilkan output

Saat ini, setiap inti real-time mendukung UART khusus TX. RTApps bisa menggunakan UART ini untuk mengirim output log dari perangkat. Selama pengembangan dan proses debug aplikasi, Anda biasanya memerlukan cara untuk membaca dan menampilkan output. Contoh HelloWorld_RTApp_MT3620_BareMetal memperlihatkan bagaimana aplikasi bisa menulis ke UART.

Gunakan adaptor USB-to-serial seperti FTDI Friend, untuk menyambungkan UART pada inti real-time ke port USB di komputer Anda. Anda juga akan memerlukan emulator terminal untuk membuat koneksi seri dengan pengaturan terminal 115200-8-N-1 (115200 bps, 8 bit, tanpa bit paritas, satu stop bit) untuk menampilkan output.

Untuk menyiapkan perangkat keras untuk menampilkan output dari RTApp, ikuti langkah-langkah ini. Anda harus merujuk ke dokumentasi dari produsen perangkat keras untuk menentukan lokasi pin. Jika Anda menggunakan perangkat keras yang mengikuti perangkat keras desain papan referensi (RDB) MT3620, seperti MT3620 Dev Kit dari Seeed Studios, maka melihat header antarmuka RDB mungkin membantu Anda menentukan lokasi pin.

  1. Hubungkan GND pada adaptor USB-ke-serial ke GND di kit dev Anda. Pada perangkat keras MT3620 RDB, GND adalah Header 3, sematkan 2.

  2. Hubungkan RX pada adaptor USB-to-serial ke IOM4-0 TX di kit dev Anda. Pada perangkat keras MT3620 RDB, IOM4-0 TX adalah Header 3, sematkan 6.

  3. Sambungkan adaptor USB-ke-serial ke port USB gratis di mesin pengembangan Anda dan tentukan port mana perangkat serial tersambung.

    • Di Windows, mulai Manajer Perangkat, pilih Tampilkan>Perangkat menurut wadah, dan cari 'UART USB". Misalnya, FT232R USB UART menunjukkan adaptor Teman FTDI.

    • Di Linux, ketikkan perintah berikut:

      dmesg | grep ttyUSB
      

      Port harus bernama ttyUSBn, di mana n menunjukkan nomor port. Jika perintah mencantumkan dmesg beberapa port USB, perintah yang tersambung ke biasanya yang terakhir dilaporkan sebagai terlampir. Misalnya, dalam hal berikut ini, Anda akan menggunakan 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. Mulai program emulator terminal dan buka terminal 115200-8-N-1 ke port COM yang digunakan oleh adaptor. Lihat dokumentasi emulator terminal untuk mengetahui cara menentukan port dan kecepatan.

Mengaktifkan pengembangan dan proses debug

Sebelum dapat membuat aplikasi sampel di perangkat Azure Sphere atau mengembangkan aplikasi baru untuk aplikasi tersebut, Anda harus mengaktifkan pengembangan dan proses debug. Secara default, perangkat Azure Sphere "terkunci"; yaitu, mereka tidak mengizinkan aplikasi yang sedang dikembangkan untuk dimuat dari PC, dan mereka tidak mengizinkan debugging aplikasi. Mempersiapkan perangkat untuk proses debug akan menghapus batasan ini dan memuat perangkat lunak yang diperlukan untuk men-debugging dan membuka kunci kemampuan perangkat .

Untuk melakukan debug pada inti real-time, gunakan perintah pengembangan aktifkan perangkat bola az . Perintah ini mengonfigurasi perangkat untuk menerima aplikasi dari PC untuk proses debug dan menetapkan perangkat ke grup Perangkat pengembangan, yang tidak mengizinkan pembaruan aplikasi cloud. Selama pengembangan dan debugging aplikasi, Anda harus meninggalkan perangkat dalam grup ini sehingga pembaruan aplikasi cloud tidak menimpa aplikasi yang sedang dikembangkan.

Di Windows, Anda harus menambahkan --enable-rt-core-debugging parameter, yang memuat server debugging dan driver yang diperlukan untuk setiap tipe inti ke perangkat.

  1. Masuk ke Azure Sphere jika Anda belum melakukannya:

    az login
    
  2. Buka antarmuka baris perintah menggunakan PowerShell atau Prompt Perintah Windows dengan hak istimewa administrator. Parameter --enable-rt-core-debugging memerlukan hak istimewa administrator karena menginstal driver USB untuk debugger.

  3. Masukkan perintah berikut:

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. Tutup jendela setelah perintah selesai karena hak istimewa administrator tidak lagi diperlukan. Sebagai praktik terbaik, Anda harus selalu menggunakan hak istimewa terendah yang dapat menyelesaikan tugas.

Jika perintah pengembangan mengaktifkan perangkat bola az gagal, lihat Memecahkan masalah Azure Sphere untuk bantuan.

Unduh aplikasi sampel

Anda dapat mengunduh aplikasi InterCore Communications sebagai berikut:

  1. Arahkan browser Anda ke Browser Sampel Microsoft.
  2. Ketikkan "Azure Sphere" dalam kotak Search.
  3. Pilih Azure Sphere - Komunikasi antar-inti dari hasil pencarian.
  4. Pilih Unduh ZIP.
  5. Buka file yang diunduh dan ekstrak ke direktori lokal.

Menyusun dan menjalankan aplikasi mitra

  1. Mulai Visual Studio. Pilih Buka folder lokal, dan navigasikan ke folder tempat Anda mengekstrak aplikasi IntercoreComms.

    Penting

    Jika menggunakan Visual Studio 2022 versi 17.1 atau yang lebih baru, dan mengekstrak sampel IntercoreComms sebelum rilis Azure Sphere 22.02, Anda harus menambahkan file CMakeWorkspaceSettings.json ke folder proyek tingkat atas.

  2. Jika Anda tidak menggunakan MT3620 RDB, perbarui file app_manifest.json untuk aplikasi dan file definisi perangkat keras dan fileCMakeLists.txt untuk aplikasi tingkat tinggi agar sesuai dengan perangkat keras Anda.

  3. Jika pembuatan CMake tidak dimulai secara otomatis, pilih file CMakeLists.txt.

  4. Di Visual Studio,outputTampilkan Output>Tampilan> dari: Output CMake akan menampilkan pesan CMake generation started dan CMake generation finished.

  5. Pilih Build>Build Semua. Jika menu tidak ada, buka Penjelajah Solusi, klik kanan file CMakeLists.txt, lalu pilih Susun. Lokasi output aplikasi RT IntercoreComms_HL & IntercoreComms muncul di jendela Output .

  6. Pilih Pilih IntercoreComms Item> Startup(Semua inti).

  7. Pilih Debug>Debug atau tekan F5 untuk menyebarkan dan men-debug aplikasi.

  8. Di jendela Output , Pilih output dari menu, pilih Output Perangkat. Jendela Output harus memperlihatkan output aplikasi tingkat tinggi:

    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. Emulator terminal yang terhubung harus menampilkan output dari program real-time yang mampu:

    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. Gunakan debugger untuk mengatur titik pecah, memeriksa variabel, dan mencoba tugas debugging lainnya.

  1. Di Visual Studio Code, buka folder tempat Anda mengekstrak aplikasi IntercoreComms. Visual Studio Code mendeteksi file ruang kerja intercore.code dan menanyakan apakah Anda ingin membuka ruang kerja. Pilih Buka Ruang Kerja untuk membuka aplikasi real-time dan aplikasi tingkat tinggi sekaligus.

  2. Jika Anda tidak menggunakan MT3620 RDB, perbarui file app_manifest.json untuk aplikasi dan file definisi perangkat keras dan fileCMakeLists.txt untuk aplikasi tingkat tinggi agar sesuai dengan perangkat keras Anda.

  3. Tekan F5 untuk memulai debugger. Jika proyek belum dibuat sebelumnya, atau jika file telah diubah dan disusun ulang diperlukan, Visual Studio Code akan menyusun proyek sebelum proses debug dimulai.

  4. Jendela output Azure Sphere akan memperlihatkan "Menyebarkan gambar..." diikuti dengan jalur ke SDK dan compiler.

  5. Jendela output harus memperlihatkan output aplikasi tingkat tinggi:

    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. Emulator terminal yang terhubung harus menampilkan output dari program real-time yang mampu:

    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. Gunakan fitur Visual Studio Code debugging untuk mengatur titik hentian, memeriksa variabel, dan mencoba tugas debugging lainnya.

Pemecahan masalah

Aplikasi mungkin mulai dijalankan sebelum OpenOCD membuat koneksi. Akibatnya, titik hentian yang diatur lebih awal dalam kode mungkin terlewatkan. Solusi sederhana untuk hal ini adalah dengan menunda dimulainya aplikasi hingga OpenOCD tersambung.

  1. Sisipkan kode berikut ini di awal titik entri aplikasi RTCoreMain. Ini akan menyebabkan aplikasi masuk dan tetap dalam while pengulangan hingga variabel f diatur ke true.

    static _Noreturn void RTCoreMain(void)
    {
      .
      .
      .
     volatile bool f = false;
     while (!f) {
        // empty.
     }
      .
      .
      .
    }
    
  2. Tekan F5 untuk memulai aplikasi dengan proses debug, lalu eksekusi.

  3. Di panel Debug lokal , ubah nilai f dari nol menjadi satu.

  4. Langkah melalui kode seperti biasa.

Ketika membuat dengan CLI, Anda terlebih dahulu membangun dan menyebarkan aplikasi yang berkemampuan real-time, lalu membuat dan menyebarkan aplikasi tingkat tinggi.

Membuat dan menyebarkan aplikasi yang berkemampuan real-time

  1. Navigasikan ke folder tempat Anda mengekstrak aplikasi IntercoreComms lalu pilih folder IntercoreComms/IntercoreComms_RTApp_MT3620_BareMetal.

  2. Buka file app_manifest.json dan verifikasi bahwa ID komponen aplikasi tingkat tinggi ditampilkan dalam kapabilitas AllowedApplicationConnections.

  3. Buka antarmuka baris perintah menggunakan PowerShell, Windows Command Prompt, atau shell perintah Linux. Navigasikan ke direktori build proyek Anda.

  4. Dari direktori build proyek Anda, di prompt perintah, jalankan CMake dengan parameter berikut:

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

      Nama prasetel konfigurasi build seperti yang ditentukan dalam CMakePresets.json.

    • --build <cmake-path>

      Direktori biner yang berisi singgahan CMake. Misalnya, jika Anda menjalankan CMake di sampel Azure Sphere, perintah build adalah cmake --build out/ARM-Debug.

    • <source-path>

      Jalur direktori yang berisi file sumber untuk aplikasi sampel. Dalam contoh, penyimpanan sampel Azure Sphere diunduh ke direktori yang disebut AzSphere.

      Parameter CMake dipisahkan oleh spasi. Karakter kelanjutan baris (^ untuk baris perintah Windows, \ untuk baris perintah Linux, atau ' untuk PowerShell) dapat digunakan untuk keterbacaan, tetapi tidak diperlukan.

    Contoh berikut ini memperlihatkan perintah CMake untuk IntercoreComms RTApp:

    Prompt Perintah 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. Dari direktori build proyek Anda, di prompt perintah, jalankan Ninja untuk membuat aplikasi dan membuat file paket gambar.

    ninja -C out/ARM-Debug
    

    Ninja menempatkan aplikasi yang dihasilkan dan file .imagepackage dalam direktori yang ditentukan.

    Anda juga dapat memanggil Ninja melalui CMake dengan perintah berikut:

    cmake --build out/<binary-dir>
    

    Atur <binary-dir> ke direktori biner yang berisi singgahan CMake. Misalnya, jika Anda menjalankan CMake di sampel Azure Sphere, perintah build adalah cmake --build out/ARM-Debug.

    Saat memecahkan masalah, terutama setelah membuat perubahan pada perintah CMake, hapus seluruh build, lalu coba lagi.

  6. Hapus aplikasi apa pun yang sudah disebarkan ke perangkat:

    az sphere device sideload delete
    
  7. Dari direktori build proyek Anda, di prompt perintah, muat paket gambar yang dibuat ninja:

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

    Aplikasi akan mulai berjalan segera setelah dimuat.

  8. Dapatkan ID komponen untuk gambar:

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

    Perintah mengembalikan semua metadata untuk paket gambar. ID komponen untuk aplikasi muncul di bagian Identitas untuk Tipe Gambar Aplikasi. Misalnya:

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

Menyusun dan menyebarkan aplikasi tingkat tinggi

  1. Navigasikan ke folder tempat Anda mengekstrak aplikasi IntercoreComms lalu pilih folder IntercoreComms/IntercoreComms_HighLevelApp.

  2. Buka file app_manifest.json dan verifikasi bahwa ID komponen RTApp ditampilkan dalam kapabilitas AllowedApplicationConnections.

  3. Buka antarmuka baris perintah menggunakan PowerShell, Windows Command Prompt, atau shell perintah Linux. Navigasikan ke direktori build proyek Anda.

  4. Dari direktori build proyek Anda, di prompt perintah, jalankan CMake dengan parameter berikut:

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

      Nama prasetel konfigurasi build seperti yang ditentukan dalam CMakePresets.json.

    • --build <cmake-path>

      Direktori biner yang berisi singgahan CMake. Misalnya, jika Anda menjalankan CMake di sampel Azure Sphere, perintah build adalah cmake --build out/ARM-Debug.

    • <source-path>

      Jalur direktori yang berisi file sumber untuk aplikasi sampel. Dalam contoh, penyimpanan sampel Azure Sphere diunduh ke direktori yang disebut AzSphere.

      Parameter CMake dipisahkan oleh spasi. Karakter kelanjutan baris (^ untuk baris perintah Windows, \ untuk baris perintah Linux, atau ' untuk PowerShell) dapat digunakan untuk keterbacaan, tetapi tidak diperlukan.

    Contoh berikut ini memperlihatkan perintah CMake untuk aplikasi tingkat tinggi IntercoreComms.

    Prompt Perintah 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. Dari direktori build proyek Anda, di prompt perintah, jalankan Ninja untuk membuat aplikasi dan membuat file paket gambar.

    ninja -C out/ARM-Debug
    

    Ninja menempatkan aplikasi yang dihasilkan dan file .imagepackage dalam direktori yang ditentukan.

    Anda juga dapat memanggil Ninja melalui CMake dengan perintah berikut:

    cmake --build out/<binary-dir>
    

    Atur <binary-dir> ke direktori biner yang berisi singgahan CMake. Misalnya, jika Anda menjalankan CMake di sampel Azure Sphere, perintah build adalah cmake --build out/ARM-Debug.

    Saat memecahkan masalah, terutama setelah membuat perubahan pada perintah CMake, hapus seluruh build, lalu coba lagi.

  6. Dari direktori build proyek Anda, di prompt perintah, muat paket gambar yang dibuat ninja:

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

    Aplikasi akan mulai berjalan segera setelah dimuat.

  7. Dapatkan ID komponen untuk gambar:

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

    Perintah mengembalikan semua metadata untuk paket gambar. ID komponen untuk aplikasi muncul di bagian Identitas untuk Tipe Gambar Aplikasi. Misalnya:

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

Jalankan aplikasi mitra dengan debugging diaktifkan

  1. Hentikan aplikasi real-time jika sedang berjalan.

    az sphere device app stop --component-id <component id>
    
  2. Mulai ulang aplikasi untuk proses debug.

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

    Perintah ini mengembalikan inti tempat aplikasi dijalankan.

      <component id>
      App state: running
      Core        : Real-time 0
    
  3. Navigasikan ke folder Openocd untuk sysroot yang dibangun dengan aplikasi. Sysroots diinstal di folder penginstalan Azure Sphere SDK. Misalnya, di Windows folder diinstal secara default di dan di C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\openocd Linux, di /opt/azurespheresdk/Sysroots/*sysroot*/tools/sysroots/x86_64-pokysdk-linux.

  4. Jalankan openocd seperti yang diperlihatkan contoh berikut ini. Contoh mengasumsikan aplikasi berjalan pada inti 0. Jika aplikasi berjalan di core 1, ganti "target io0" dengan "target 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. Buka Prompt Perintah Azure Sphere baru (Windows Azure Sphere classic CLI), prompt perintah standar atau PowerShell (Windows Azure CLI), atau jendela terminal (Linux).

  6. Navigasikan ke folder yang berisi file .out aplikasi berkemampuan real-time dan mulai arm-none-eabi-gdb, yang merupakan bagian dari Toolchain GNU Arm Embedded:

    Prompt Perintah 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 menyediakan antarmuka server GDB pada :4444. Atur target untuk proses debug.

    target remote :4444

  8. Kini Anda dapat menjalankan perintah gdb ke aplikasi real-time yang berkemampuan. Tambahkan titik hentian pada fungsi HandleSendTimerDeferred:

    break HandleSendTimerDeferred
    
  9. Emulator terminal yang terhubung harus menampilkan output dari aplikasi yang berkemampuan real-time.

  10. Buka Prompt Perintah Azure Sphere baru (Windows Azure Sphere classic CLI), prompt perintah standar atau PowerShell (Windows Azure CLI), atau jendela terminal (Linux).

  11. Navigasikan ke folder yang berisi file .imagepackage aplikasi tingkat tinggi.

  12. Hentikan aplikasi tingkat tinggi jika sedang berjalan.

    az sphere device app stop --component-id <component id>
    
  13. Mulai ulang aplikasi tingkat tinggi dengan proses debug.

    az sphere device app start --debug-mode true --component-id <component id> --debug-mode
    
  14. Buka emulator terminal dan buat koneksi Telnet atau TCP ke 192.168.35.2 di port 2342 untuk melihat output aplikasi tingkat tinggi.

  15. Mulai gdb dengan perintah berikut:

    Prompt Perintah 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
    

    Catatan

    SDK Azure Sphere dikirim dengan beberapa sysroot sehingga aplikasi dapat menargetkan kumpulan API yang berbeda, seperti yang dijelaskan dalam Versi runtime aplikasi, sysroot, dan API Beta. Sysroot diinstal di folder penginstalan Azure Sphere SDK di bawah Sysroots.

  16. Atur target debugging jarak jauh ke alamat IP 192.168.35.2 pada port 2345:

    target remote 192.168.35.2:2345

  17. Tambahkan titik hentian di fungsi SendMessageToRTApp:

    break SendMessageToRTApp

  18. Ketik c untuk melanjutkan, amati output di terminal Telnet/TCP Anda, lalu beralih ke prompt perintah atau jendela terminal yang berisi sesi debugging aplikasi real-time Anda.

  19. Ketik c untuk melanjutkan dan mengamati output dalam sesi seri yang tersambung.

Anda dapat bekerja bolak-balik antara sesi debugging, beralih antara aplikasi berkemampuan real-time dan aplikasi tingkat tinggi. Anda akan melihat output yang mirip dengan yang berikut ini di dua jendela output:

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

Untuk mengakhiri setiap sesi debugging, ketikkan q perintah gdb.

Langkah berikutnya