Bagikan melalui


Membuat aplikasi yang berkemampuan real-time

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

Prasyarat

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.

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 melakukan debug dan membuka kunci kemampuan perangkat seperti yang dijelaskan dalam Kapabilitas perangkat dan komunikasi.

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 jika Anda belum melakukannya:

    az login
    
  2. Buka antarmuka baris perintah menggunakan PowerShell, Prompt Perintah Windows, atau shell perintah Linux 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
    
  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 dengan pesan kesalahan berikut, lihat Memecahkan masalah Azure Sphere untuk 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 'az sphere device show-deployment-status'.

Buat RTApp menggunakan Visual Studio Code

Untuk membuat RTApp:

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

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

  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 mengubah CMakeLists.txt. Anda perlu menjalankan perintah CMake: Hapus Cache dan Konfigurasi Ulang untuk merefresh Intellisense. Tampilan target CMake dapat ditemukan dalam tampilan ekstensi CMake di bilah kiri.

Menyusun RTApp menggunakan Visual Studio

Untuk membuat RTApp:

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

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

  3. Di Visual Studio, output TampilkanOutput> Tampilan >dari: Output CMake akan menampilkan pesan CMake generation started. danCMake generation finished.

  4. Pada menu CMake (jika ada), pilih Build Semua. Jika menu tidak ada, buka Penjelajah Solusi, klik kanan file CMakeLists.txt, lalu pilih Susun. 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 menyukai tampilan logika proyek CMake, Anda bisa mengubah ke tampilan Target CMake. Di Penjelajah Solusi, pilih ikon alih folder:

      Beralih antara tampilan Solusi dan Folder

      Dari menu turun bawah, pilih Tampilan Target CMake.

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

          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. Masuk ke kode seperti biasa.

Membuat RTApp menggunakan CLI

Instruksi yang mengikuti menganggap Anda menggunakan CMake. Jika Anda lebih suka membuat di 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, 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 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 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.

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

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

    az sphere device sideload deploy --image-package <package-name>
    
  6. 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"
      },
    ...
    
  7. Tentukan inti mana yang menjalankan aplikasi Anda.

    Secara default, RTApp disebarkan ke inti real-time pertama yang tersedia di perangkat; Saat ini Anda tidak dapat menentukan inti tertentu. Untuk mencari tahu inti mana aplikasi berjalan, gunakan perintah aplikasi perangkat bola az untuk berhenti lalu hidupkan ulang aplikasi. Masukkan ID komponen untuk aplikasi dalam perintah. Misalnya:

    az sphere device app stop --component-id <component id>
    <component id>: App state: stopped
    
    az sphere 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 di MT3620 memiliki UART khusus yang dimaksudkan untuk output pembuatan log. Inti real-time juga dapat mengakses UART ISU. MT3620 RDB hanya memperlihatkan pin TX, yang dapat Anda gunakan untuk menampilkan output log dari aplikasi. Perangkat keras lain mungkin mengekspos hal 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 khusus tidak boleh digunakan untuk tujuan selain pembuatan log output untuk RTApp.

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.

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: