Bagikan melalui


Men-debug aplikasi yang berkemampuan real-time

RTApps di-debugging menggunakan OpenOCD, yang diinstal dengan Azure Sphere SDK, dan versi GDB yang diinstal sebagai bagian dari Toolchain ARM GNU Embedded.

Debug RTApp dengan Visual Studio

  1. Pastikan perangkat Anda tersambung ke PC menggunakan USB. Dalam menu Atur item mulai , pilih Aplikasi Azure Sphere (RT Core) di mana Aplikasi Azure Sphere adalah nama aplikasi anda yang berkemampuan real-time saat ini atau tekan F5.

    Tombol Debugger GDB Jarak Jauh

  2. Jika Diminta untuk menyusun proyek, pilih Ya. Visual Studio menggabungkan aplikasi real-time yang berkemampuan, membuat paket gambar, memuat sisinya ke papan, dan memulainya dalam mode debug. Sideloading berarti bahwa aplikasi dikirim langsung dari PC melalui koneksi berkabel, daripada dikirimkan melalui cloud.

    Perhatikan ID gambar paket gambar dalam output Tampilkan>Output>Tampilkan dari: Output build Ketika Anda siap untuk membuat penyebaran, Anda perlu mengetahui jalur ke paket gambar.

  3. Secara default, jendela Output memperlihatkan output dari Output Perangkat. Untuk melihat pesan dari debugger, pilih Debug dari menu menurun Perlihatkan output dari: . Anda juga dapat memeriksa pembongkaran, pendaftaran, atau memori program melalui menu Debug>Windows .

Visual Studio menyiapkan koneksi antara server GDB dan OpenOCD sehingga Anda dapat menggunakan antarmuka debugging Visual Studio standar (F5, F6, F9 untuk titik pecah dan seterusnya) di RTApp, dengan cara yang sama seperti pada aplikasi tingkat tinggi.

Selagi berhenti di titik hentian dalam kode sumber C, Anda dapat membuka jendela Disassembly yang memperlihatkan alamat saat ini, mnemonic perakit untuk perintah saat ini, dan informasi seperti register yang dilibatkan atau perintah kode sumber sedang dijalankan.

Untuk membuka jendela Disassembly :

  1. Pastikan bahwa file sumber kode C yang berisi titik hentian terbuka di Visual Studio.
  2. Pilih Debug>Windows>Disassembly, atau tekan Alt+8.

Debug RTApp dengan Visual Studio Code

Visual Studio Code di-debugging dengan menekan F5 atau menjalankan perintah debug dari tampilan debug di bilah kiri. Dalam sampel, .vscode/launch.json sudah ada, sehingga debugging akan segera dimulai. Di aplikasi baru, debugging akan terlebih dahulu menanyakan apakah ini adalah HLApp atau RTApp, dan membuat .vscode/launch.json dari jawaban Anda. Proses debug kemudian akan diaktifkan.

Saat berhenti di titik hentian dalam kode sumber C, Anda dapat membuka tampilan Disassembly yang memperlihatkan alamat saat ini, data heks mentah, mnemonic perakit untuk perintah saat ini, dan informasi seperti register yang terlibat atau perintah kode sumber sedang dijalankan.

Untuk membuka tampilan Disassembly:

  1. Pastikan bahwa file sumber kode C yang berisi titik hentian terbuka di editor Visual Studio Code.
  2. Klik kanan di jendela editor dan pilih Buka Tampilan Disassembly atau pilih Tampilkan>Tampilan> Palet PerintahBuka Disassembly.

Debug RTApp menggunakan CLI

  1. Mulai aplikasi untuk proses debug:

    az sphere device app start --component-id <component id>
    

    Perintah ini mengembalikan inti tempat aplikasi dijalankan.

  2. Navigasikan ke folder Openocd untuk sysroot yang dibangun dengan aplikasi. Dalam Mulai Cepat ini, sysroot adalah 5+Beta2004. 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\5+Beta2004\tools\openocd Linux, di /opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocd.

  3. 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"
    
  4. Buka antarmuka baris perintah menggunakan PowerShell, Windows Command Prompt, atau shell perintah Linux.

  5. Navigasikan ke folder yang berisi file .out aplikasi dan mulai arm-none-eabi-gdb, yang merupakan bagian dari Toolchain ARM GNU 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
    
  6. Server OpenOCD menyediakan antarmuka server GDB pada :4444. Atur target untuk proses debug.

    target remote :4444

  7. Jalankan perintah gdb apa pun yang Anda pilih.

Mengembangkan dengan aplikasi mitra

Saat Anda memuat aplikasi ke perangkat Azure Sphere, alat penyebaran Azure Sphere secara default menghapus semua aplikasi yang sudah ada. Untuk mencegah hal ini terjadi ketika Anda mengembangkan aplikasi yang berkomunikasi satu sama lain, Anda perlu menandai aplikasi sebagai mitra. Saat Anda menyebarkan salah satu aplikasi, mitranya tidak akan dihapus. Lihat Menandai aplikasi sebagai mitra untuk detailnya.

Pemecahan masalah

Jika Anda mengalami masalah, lihat Pemecahan masalah aplikasi berkemampu real-time.