Bagikan melalui


Membangun aplikasi berkemampuan real time

Penting

Ini adalah dokumentasi Azure Sphere (Warisan). Azure Sphere (Warisan) dihentikan pada 27 September 2027, dan pengguna harus bermigrasi ke Azure Sphere (Terintegrasi) saat ini. Gunakan pemilih Versi yang terletak di atas TOC untuk melihat dokumentasi Azure Sphere (Terintegrasi).

Anda dapat menggunakan Visual Studio, Visual Studio Code, atau baris perintah (CLI) untuk mengembangkan dan men-debug aplikasi berkemampuan real time (RTApps) dengan cara yang sama seperti aplikasi tingkat tinggi.

Prasyarat

Mengaktifkan pengembangan dan penelusuran kesalahan

Sebelum Dapat membuat aplikasi sampel di perangkat Azure Sphere atau mengembangkan aplikasi baru untuk aplikasi tersebut, Anda harus mengaktifkan pengembangan dan penelusuran kesalahan. Secara default, perangkat Azure Sphere "terkunci"; artinya, mereka tidak mengizinkan aplikasi yang sedang dikembangkan untuk dimuat dari PC, dan mereka tidak mengizinkan penelusuran kesalahan aplikasi. Menyiapkan perangkat untuk penelusuran kesalahan menghapus pembatasan ini dan memuat perangkat lunak yang diperlukan untuk penelusuran kesalahan dan membuka kunci kemampuan perangkat seperti yang dijelaskan dalam Kemampuan perangkat dan komunikasi.

Untuk men-debug inti real-time, gunakan perintah azsphere device enable-development. Perintah ini mengonfigurasi perangkat untuk menerima aplikasi dari PC untuk penelusuran kesalahan dan menetapkan perangkat ke grup perangkat Pengembangan, yang tidak mengizinkan pembaruan aplikasi cloud. Selama pengembangan dan penelusuran kesalahan 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 jenis inti ke perangkat.

  1. Masuk ke Azure Sphere jika Anda belum melakukannya:

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

  3. Masukkan perintah berikut:

    azsphere device enable-development --enable-rt-core-debugging
    
  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 azsphere device enable-development gagal, lihat Memecahkan masalah Azure Sphere untuk mendapatkan bantuan.

Mengaktifkan pengembangan dan penelusuran kesalahan

Sebelum Dapat membuat aplikasi sampel di perangkat Azure Sphere atau mengembangkan aplikasi baru untuk aplikasi tersebut, Anda harus mengaktifkan pengembangan dan penelusuran kesalahan. Secara default, perangkat Azure Sphere "terkunci"; artinya, mereka tidak mengizinkan aplikasi yang sedang dikembangkan untuk dimuat dari PC, dan mereka tidak mengizinkan penelusuran kesalahan aplikasi. Menyiapkan perangkat untuk penelusuran kesalahan menghapus pembatasan ini dan memuat perangkat lunak yang diperlukan untuk penelusuran kesalahan dan membuka kunci kemampuan perangkat seperti yang dijelaskan dalam Kemampuan perangkat dan komunikasi.

Untuk men-debug inti real-time, gunakan perintah azsphere device enable-development. Perintah ini mengonfigurasi perangkat untuk menerima aplikasi dari PC untuk penelusuran kesalahan dan menetapkan perangkat ke grup perangkat Pengembangan, yang tidak mengizinkan pembaruan aplikasi cloud. Selama pengembangan dan penelusuran kesalahan 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 jenis inti ke perangkat.

  1. Masuk ke Azure Sphere jika Anda belum melakukannya:

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

  3. Masukkan perintah berikut:

    azsphere device enable-development --enable-rt-core-debugging
    
  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 azsphere device enable-development gagal dengan pesan kesalahan berikut, lihat Memecahkan masalah Azure Sphere untuk mendapatkan bantuan.

error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'azsphere device show-deployment-status'.

Membuat RTApp menggunakan Visual Studio Code

Untuk membangun RTApp:

  1. Di Visual Studio Code, buka folder HelloWorld_RTApp_MT3620_BareMetal di kloning repositori sampel Azure Sphere Anda. Jika Anda diminta untuk memilih kit, pilih "Jangan gunakan kit."

  2. Tekan F5 untuk memulai debugger. Jika proyek sebelumnya belum dibuat, atau jika file telah berubah dan dibangun ulang diperlukan, Visual Studio Code akan membangun proyek sebelum penelusuran kesalahan dimulai.

  3. Emulator terminal yang terhubung harus menampilkan output dari aplikasi. Program mengirimkan kata-kata berikut pada interval satu detik:

    Tick

    Tock

    Catatan

    Visual Studio Code menyediakan Intellisense, tetapi tidak akan diperbarui secara otomatis saat Anda memodifikasi CMakeLists.txt. Anda perlu menjalankan perintah CMake: Hapus Cache dan Konfigurasi ulang untuk me-refresh Intellisense. Tampilan target CMake dapat ditemukan di tampilan ekstensi CMake di bilah kiri.

Membuat RTApp menggunakan Visual Studio

Untuk membangun RTApp:

  1. Di Visual Studio, pilih File>CMake dan navigasi ke folder yang berisi sampel.

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

  3. Di Visual Studio, Lihat>output Tampilkan Output>dari: Output CMake harus menampilkan pesan dan CMake generation started.CMake generation finished.

  4. Pada menu CMake (jika ada), pilih Bangun Semua. Jika menu tidak ada, buka Penjelajah Solusi, klik kanan file CMakeLists.txt, dan pilih Bangun. Lokasi output aplikasi Azure Sphere muncul di jendela Output .

  5. Tekan F5 untuk menyebarkan aplikasi.

  6. Emulator terminal yang terhubung harus menampilkan output dari aplikasi. Program mengirimkan kata-kata berikut pada interval satu detik:

    Tick

    Tock

    Catatan

    • Visual Studio menyediakan Intellisense untuk Azure Sphere RTApps dengan mengumpulkan data dari cache CMake-nya. Visual Studio memperbarui cache setiap kali file CMakeLists.txt atau CMakeSettings.json di RTApp berubah.

    • Secara default, Visual Studio menggunakan tampilan Folder. Jika Anda lebih suka tampilan logis proyek CMake, Anda dapat mengubah ke tampilan Target CMake. Di Penjelajah Solusi, pilih ikon tombol folder:

      Beralih antara tampilan Solusi dan Folder

      Dari menu dropdown, pilih Tampilan Target CMake.

    • Aplikasi mungkin mulai dijalankan sebelum OpenOCD membuat koneksi. Akibatnya, titik henti yang diatur di awal kode mungkin terlewatkan. Solusi sederhana untuk ini adalah menunda awal aplikasi hingga OpenOCD tersambung.

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

          volatile bool f = false;
          while (!f) {
            // empty.
          }
        
      2. Tekan F5 untuk memulai aplikasi dengan penelusuran kesalahan lalu pecahkan eksekusi.

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

      4. Melangkah melalui kode seperti biasa.

Membangun RTApp menggunakan CLI

Instruksi berikut mengasumsikan Anda menggunakan CMake. Jika Anda lebih suka membangun pada baris perintah tanpa menggunakan CMake, Anda dapat menentukan opsi kompilator dan linker yang sesuai dengan melihat file AzureSphereToolchainBase.cmake dan AzureSphereRTCoreToolchain.cmake, yang diinstal dengan Azure Sphere SDK.

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

  2. Dari direktori build proyek Anda, pada prompt perintah, jalankan CMake dengan parameter berikut:

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

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

    • --build <cmake-path>

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

    • <source-path>

      Jalur direktori yang berisi file sumber untuk aplikasi sampel. Dalam contoh, repositori 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 menunjukkan perintah CMake untuk HelloWorld RTApp:

    Prompt Perintah Windows

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

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_RTApp_MT3620_BareMetal"
    
  3. Jalankan Ninja untuk membangun aplikasi dan membuat file paket gambar:

    ninja -C out/ARM-Debug
    

    Ninja menempatkan aplikasi yang dihasilkan dan file .imagepackage di 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 cache CMake. Misalnya, jika Anda menjalankan CMake pada sampel Azure Sphere, perintah build adalah cmake --build out/ARM-Debug.

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

    azsphere device sideload delete
    
  5. Sebarkan paket gambar yang dibuat Ninja:

    azsphere device sideload deploy --image-package <package-name>
    
  6. Dapatkan ID komponen untuk gambar:

    azsphere image-package show --image-package <path-to-imagepackage>
    

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

    Image package metadata:
    Section: Identity
    Image Type:           Application
    Component ID:         <component id>
    Image ID:             <image id>
    
  7. Tentukan inti mana aplikasi Anda berjalan.

    Secara default, RTApp disebarkan ke inti real-time pertama yang tersedia di perangkat; Anda saat ini tidak dapat menentukan inti tertentu. Untuk mengetahui inti mana aplikasi berjalan, gunakan perintah aplikasi perangkat azsphere untuk menghentikan dan kemudian memulai ulang aplikasi. Berikan ID komponen untuk aplikasi dalam perintah. Contohnya:

    azsphere device app stop --component-id <component id>
    <component id>: App state: stopped
    
    azsphere device app start --component-id <component id>
    <component id>
    App state: running
    Core     : Real-time 0
    
  8. Emulator terminal yang terhubung harus menampilkan output dari aplikasi. Program mengirimkan kata-kata berikut pada interval satu detik:

    Tick

    Tock

Output log dari RTApp

Setiap inti real time pada MT3620 memiliki UART khusus yang ditujukan untuk output pengelogan. Inti real-time juga dapat mengakses UART ISU. MT3620 RDB hanya mengekspos pin TX, yang dapat Anda gunakan untuk menampilkan output log dari aplikasi. Perangkat keras lain mungkin mengekspos ini secara berbeda, atau tidak sama sekali. Untuk melihat output log, siapkan perangkat keras Anda untuk menampilkan output ini seperti yang dijelaskan dalam mulai cepat. UART khusus tidak memerlukan Uart persyaratan manifes aplikasi; namun, UART tersebut tidak boleh digunakan untuk tujuan selain output pengelogan untuk RTApp.

Mengembangkan dengan aplikasi mitra

Saat Anda memuat aplikasi ke perangkat Azure Sphere, alat penyebaran Azure Sphere secara default menghapus semua aplikasi yang 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 berkemampuan real time.

Sumber Daya Tambahan:

Driver dan sampel tambahan untuk RTApps yang menargetkan inti real-time M4 pada chip MT3620 tersedia di GitHub dari mitra Azure Sphere: