Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perpustakaan Agen OTA
penting
Ini adalah versi arsip dari Panduan Pengguna FreerTOS untuk digunakan dengan rilis FreerTOS 202012.00. Untuk versi terbaru dari dokumen ini, lihat Panduan Pengguna FreeRTOS.
Gambaran Umum
Perpustakaan Agen OTAIni memungkinkan Anda untuk mengelola pemberitahuan, download, dan verifikasi pembaruan firmware untuk perangkat FreeRTOS menggunakan HTTP atau MQTT sebagai protokol. Dengan menggunakan perpustakaan Agen OTA, Anda dapat secara logis memisahkan pembaruan firmware dan aplikasi yang berjalan di perangkat Anda. Agen OTA dapat berbagi koneksi jaringan dengan aplikasi. Dengan berbagi koneksi jaringan, Anda berpotensi menghemat sejumlah besar RAM. Selain itu, pustaka Agen OTA memungkinkan Anda menentukan logika khusus aplikasi untuk menguji, melakukan, atau memutar kembali pembaruan firmware.
Untuk informasi selengkapnya tentang menyiapkan pembaruan OTA dengan FreeRTOS, lihat. Pembaruan FreeRTOS Over-the-Air
Fitur
Berikut adalah antarmuka Agen OTA lengkap:
OTA_AgentInit
-
Menginisialisasi Agen OTA. Penelepon menyediakan konteks protokol pesan, panggilan balik opsional, dan batas waktu.
OTA_AgentShutdown
-
Membersihkan sumber daya setelah menggunakan Agen OTA.
OTA_GetAgentState
-
Mendapat status Agen OTA saat ini.
OTA_ActivateNewImage
-
Mengaktifkan gambar firmware mikrokontroler terbaru yang diterima melalui OTA. (Status pekerjaan terperinci sekarang harus self-test.)
OTA_SetImageState
-
Menetapkan status validasi gambar firmware mikrokontroler yang sedang berjalan (pengujian, diterima atau ditolak).
OTA_GetImageState
-
Mendapat status gambar firmware mikrokontroler yang sedang berjalan (pengujian, diterima atau ditolak).
OTA_CheckForUpdate
-
Meminta pembaruan OTA berikutnya yang tersedia dari layanan Pembaruan OTA.
OTA_Suspend
-
Tangguhkan semua operasi Agen OTA.
OTA_Resume
-
Lanjutkan operasi Agen OTA.
Referensi API
Untuk informasi selengkapnya, lihat Referensi API Agen OTA.
Contoh penggunaan
Aplikasi perangkat berkemampuan OTA yang khas menggunakan protokol MQTT menggerakkan Agen OTA dengan menggunakan urutan panggilan API berikut.
-
Connect ke broker AWS IoT MQTT. Untuk informasi selengkapnya, lihat Perpustakaan CoreMQTT.
-
Inisialisasi Agen OTA dengan menelepon
OTA_AgentInit
. Aplikasi Anda dapat menentukan fungsi callback OTA kustom atau menggunakan callback default dengan menentukan pointer fungsi callback NULL. Anda juga harus menyediakan batas waktu inisialisasi.Callback mengimplementasikan logika khusus aplikasi yang dijalankan setelah menyelesaikan pekerjaan pembaruan OTA. Batas waktu menentukan berapa lama menunggu inisialisasi selesai.
-
Jika
OTA_AgentInit
waktunya habis sebelum Agen siap, Anda dapat meneleponOTA_GetAgentState
untuk mengonfirmasi bahwa Agen diinisialisasi dan beroperasi seperti yang diharapkan. -
Ketika pembaruan OTA selesai, FreeRTOS memanggil callback penyelesaian pekerjaan dengan salah satu peristiwa
accepted
berikut:,, atau.rejected
self test
-
Jika gambar firmware baru telah ditolak (misalnya, karena kesalahan validasi), aplikasi biasanya dapat mengabaikan notifikasi dan menunggu pembaruan berikutnya.
-
Jika pembaruan valid dan telah ditandai sebagai diterima, hubungi
OTA_ActivateNewImage
untuk mengatur ulang perangkat dan mem-boot gambar firmware baru.
Porting
Untuk informasi tentang porting fungsionalitas OTA ke platform Anda, lihat Porting Perpustakaan OTA di Panduan Porting FreerTOS.
Penggunaan memori
Ukuran Kode AWS IoT OTA (contoh yang dihasilkan dengan GCC untuk ARM Cortex-M) | ||
---|---|---|
File | Dengan Optimasi -O1 | Dengan Optimasi -Os |
ota.c | 8.0K | 7.2K |
ota_interface.c | 0,1K | 0,1K |
ota_base64.c | 0.6K | 0.6K |
ota_mqtt.c | 2.3K | 2.2K |
ota_cbor.c | 0.8K | 0.6K |
ota_http.c | 0.3K | 0.3K |
Total perkiraan | 12.1K | 11.0K |