Saya mengevaluasi sistem operasi untuk digunakan dalam Proyek Internet of Things dan saya tidak tahu apa cara terbaik untuk melanjutkan.
Saya menggunakan MCU TM4C123GH6PM dengan 32k RAM dan transceiver CC2520 802.15.4, akan lebih baik jika sistem sudah menyediakan driver untuk mereka.
Sistem akan menjalankan satu tugas (interaktif) yang menarik layar dotmatrix dan bereaksi terhadap input pengguna. Ini akan menyimpan konfigurasi dan data aplikasi pada spi flash. Akan ada mesh beberapa modul (berdasarkan 802.15.4) untuk menyinkronkan data antara modul, mengekstrak data sensor dari modul dan meneruskannya ke gateway (rpl datang ke pikiran) dan juga mendistribusikan pembaruan firmware OtA dalam gosip- seperti fashion. Semua sambil menjalankan aplikasi yang agak haus memori juga.
Sejauh ini saya telah melihat ke dalam sistem ini:
RIOT :
pro
- abstraksi perangkat keras yang baik
- jejak kaki kecil
- komunitas yang sangat aktif dan membantu
- 802.15.4 / 6LoWPAN stack penuh
kontra
- tidak stabil, masih mengalami perubahan mendasar
- masih mengandung kondisi balapan / crash
- tidak ada dukungan sistem file
- beberapa protokol jaringan
Contiki :
pro
- sistem matang, digunakan dalam produk komersial
- 802.15.4 / 6LoWPAN stack penuh dengan banyak protokol yang bermanfaat
- dukungan sistem file
- dukungan cc2520
kontra
- pembangunan telah menjadi basi
- basis kode 'dewasa', banyak bit busuk
- port tiva c berkualitas buruk
- sedikit dukungan untuk platform modern
- penjadwalan non-preemptive dapat menyebabkan masalah dengan aplikasi
FreeRTOS :
pro
- sedikit kompleksitas tambahan
- mudah digunakan, penjadwal yang andal
- proyek matang, digunakan dalam banyak produk
- banyak port
kontra
- tidak ada sistem file
- tidak ada abstraksi perangkat keras untuk driver / tidak ada driver perangkat keras
- tidak ada tumpukan jaringan
- Penggunaan memori dinamis agak tinggi
NuttX :
pro
- kaya fitur, hampir terasa seperti Linux, namun masih kecil
- dukungan sistem file
- abstraksi perangkat keras yang baik
- Port Tiva C, banyak port lainnya
kontra
- agak rumit
- tidak ada dukungan untuk 802.15.4 / 6LoWPAN, hanya netstack 'klasik'
Kesimpulan saya akan mengambil bagian yang baik dari Contiki (netstack, sistem file) dan port mereka ke FreeRTOS. Tapi aku tidak sepenuhnya nyaman dengan garpu seperti itu. Saya mungkin akan menambahkan kesalahan dan tidak akan dapat mendukung perbaikan hulu, juga saya masih harus menemukan abstraksi perangkat keras saya sendiri untuk dapat beralih MCU di masa depan. Jadi saya akan berakhir dengan OS saya sendiri untuk sesuatu yang tampak seperti masalah yang harus dimiliki banyak orang juga - belum pernahkah seseorang melakukan itu sebelumnya? (Maksud saya, saya memang menemukan sesuatu, tetapi gagasan menjalankan seluruh contiki-os sebagai tugas FreeRTOS membuat saya tidak nyaman)
Apakah ada sesuatu yang saya lewatkan? Mungkin rasa sakit akan sia-sia dan saya harus mencoba untuk mendapatkan Contiki ke keadaan fungsional pada perangkat keras saya? Atau ada sistem lain yang saya lewatkan yang akan menyelesaikan masalah saya?
Juga saya tidak yakin apakah saya memerlukan 6lowPan sama sekali, tetapi ketika itu berarti mampu membangun protokol yang ada / kompatibel dengan sistem lain (misalnya Linux), saya akan bersedia mengambil overhead tambahan.
running the entire contiki-os as a FreeRTOS task makes me uncomfortable
Itu hanya .. wow! Saya tidak akan pernah memikirkan hal itu ..