Saya memiliki prototipe perangkat sumber daya terbatas (8-bit MCU tanpa firmware OS), berinteraksi dengan server web. Saya ingin tahu apakah ada solusi, kerangka kerja atau layanan cloud untuk memperbarui firmware perangkat saya dari web. Dari penelitian saya ada Microsoft IoT Hub, tapi saya khawatir itu tidak cocok untuk perangkat yang terbatas sumber daya. Ada satu solusi lagi, saya menemukan - portal Cloud mbed, tapi saya tidak yakin bagaimana cara kerjanya. Adakah yang bisa membantu saya melalui saran apa pun, mungkin ada beberapa praktik terbaik untuk menerapkan peningkatan firmware melalui udara untuk perangkat tertanam dengan cara yang aman dan kuat?
security
microcontrollers
over-the-air-updates
Vadimchik
sumber
sumber
Jawaban:
Saya hanya akan menjawab bagian ini, karena saya tahu tidak ada sistem 'out of the box' untuk firwmare yang tidak diketahui.
Dalam hal latihan, apa yang akan saya lakukan adalah sebagai berikut:
1) Memiliki boot loader yang sangat minim, sesuatu yang sebodoh mungkin hanya bertanggung jawab memuat firmware dengan batasan-batasan berikut:
2) Atur penyimpanan Anda untuk memiliki dua "bank boot" dengan ukuran yang masuk akal untuk menangani evolusi di masa depan dan pertumbuhan firmware.
3) Periksa ulang gambar firmware setelah mengunduh untuk memastikannya benar sebelum membakar, periksa kembali bank tujuan setelah membakar untuk memastikan lagi tidak akan gagal untuk mem-boot sedikit pun di suatu tempat.
Titik yang diabaikan biasanya adalah checksum dari gambar yang diunduh sebelum dan sesudah pembakaran, mengakibatkan sistem rusak yang tertulis pada perangkat. Menggunakan dua bank dan bergantian biasanya memudahkan proses pembaruan.
sumber
mbed cloud memang menawarkan fungsionalitas pembaruan firmware penuh, tapi saya pikir Anda akan mengalami masalah porting ke platform Anda jika Anda menjalankan tanpa OS. Saya tidak berpikir sumbernya terbuka hari ini, jadi Anda bahkan tidak dapat menggunakannya untuk referensi. Saya juga tidak yakin apa kriteria untuk mendapatkan akses saat ini.
Anda perlu memikirkan fitur yang Anda butuhkan - apakah ini penyebaran skala besar di mana Anda harus dapat melakukan peluncuran firmware secara bertahap, apakah Anda peduli untuk menandatangani firmware, atau apakah platform Anda sepenuhnya terbuka untuk siapa saja yang memiliki akses fisik? Seberapa besar kepedulian Anda untuk memulihkan perangkat tanpa JTAG?
Secara realistis, fitur seperti pembaruan OTA mungkin adalah sesuatu yang mendorong OS dan pemilihan perangkat Anda - begitu Anda memperhitungkan biaya pengembangan.
sumber
Lihatlah OTA yang merupakan kependekan dari Over The Air. Arduino memiliki properti itu .
Anda dapat melakukan pembaruan dengan Arduino IDE, Web Browser atau HTTP Server.
sumber
Anda mungkin melihat Partikel (IoT) . Saya tidak yakin mereka mendukung Arduino, tetapi mereka sendiri menawarkan beberapa papan embedded murah.
sumber
Satu lagi platform yang menarik, saya temukan adalah DeviceDrive . Berikut adalah video yang menjelaskan cara kerja. Sistem OTA mereka tampaknya cukup fleksibel.
sumber