Telah ada diskusi terkait dengan pertanyaan ini di sini: tautan
Ekstrak: Artikel Linux Journal yang dimaksud ada di sini: tautan
Saya pikir bahwa port 8052 dan M68HC12 adalah pilihan yang sangat buruk untuk mengkarakterisasi NuttX karena mereka berdua memiliki beberapa masalah, dan NuttX sekarang pada versi 5.16 dengan 63 rilis.
Saya mengisi wawancara di tab "Penerbit" di sini: tautan ; ada ulasan di sana juga: tautan .
Dokumentasi NuttX yang luas tersedia di sini: tautan .
Masalah dengan bagian hcs12 dan 8051 adalah sebagai berikut:
8051 / 80c52: Arsitektur ini benar-benar bermusuhan RTOS. Ini memiliki tumpukan perangkat keras kecil (128 byte pada 8.051, 256 pada 80c52) di lokasi memori khusus (alamat 0). Untuk berpindah tugas, Anda harus menyalin seluruh tumpukan tugas yang akan diblokir dari alamat khusus ke beberapa lokasi penyimpanan, dan lalu menyalin seluruh tumpukan tugas untuk dimulai dari lokasi penyimpanannya ke lokasi tumpukan khusus. Yech!
Dan karena, tumpukan itu sangat kecil. Sangat, sangat mudah untuk menyerbu tumpukan - terutama selama penanganan interupsi.
Port NuttX 8051 lengkap dan fungsional (setidaknya terakhir kali saya menggunakannya). Tetapi untuk membuatnya berguna, Anda mungkin harus menyalin seluruh tumpukan pada setiap interupsi juga agar tidak meluap. Pada dasarnya, saya kehilangan minat pada saat itu tetapi jika seseorang benar-benar termotivasi untuk menggunakan 8051, itu bisa dilakukan (jika mungkin tidak disarankan).
Apa yang baik tentang port 8051 adalah bahwa itu adalah latihan yang bagus untuk memasukkan NuttX ke lokasi memori yang sangat kecil. Port 8.051 berjalan dalam 32Kb RAM - yang mencakup RTOS, libc, perpustakaan kompiler, program uji yang substansial, .data / .bss, dan dan heap. Dan dengan sedikit memori tersisa!
hcs12: Ini adalah proyek yang saya kerjakan di waktu senggang ketika saya tidak melakukan hal lain. Itu belum selesai dan belum siap untuk prime time.
Berkenaan dengan perbandingan dengan RTOS lain, saya benar-benar tidak punya jawaban yang baik dan otoritatif karena saya tidak menggunakan RTOS lain. Tapi di sini adalah pemahaman naif saya:
FreeRTOS memiliki banyak unduhan dan jejak sangat kecil sekitar 4Kb. Ini adalah RTOS pilihan untuk MCU yang sangat kecil. Port FreeRTOS dibundel oleh vendor silikon dengan hampir setiap MCU. Jadi itu adalah pilihan RTOS default.
Ada puluhan pesaing dengan FreeRTOS di luar sana. ChiBIOS langsung terlintas dalam pikiran. Ini semua adalah penjadwal kecil dari berbagai jenis.
Untuk melakukan perbandingan nyata, satu hal yang perlu kita lakukan pertama-tama adalah mendefinisikan apa yang kita maksud dengan RTOS: Apakah itu hanya penjadwal? Atau apakah itu satu set fitur OS standar terintegrasi - seperti scheduler, filesystem, driver perangkat, manajemen memori, jaringan, dll. Sebagian besar sistem operasi, Linux misalnya, adalah lingkungan pengembangan penuh, bukan hanya penjadwal. NuttX adalah sistem operasi penuh yang artinya sama dengan Linux. Berikut adalah beberapa lainnya:
RTEMS : Saya sudah bekerja dengan ini. Sudah ada selamanya dan harus sangat stabil. Itu besar; think> 100kb. Saya pikir ini bertujuan sedikit di atas pasar MCU.
uCOS : Tidak pernah menggunakannya, tetapi ini RTOS di bawah beberapa bootloader populer, bukan? Kesan saya adalah itu mirip dengan RTEMS, tetapi saya tidak benar-benar tahu apa yang saya bicarakan.
Bagaimana saya membandingkan NuttX dengan mereka: Ya, ini jauh lebih kecil. Jejak awal sekitar 20Kb. Konfirmasi berfitur lengkap adalah sekitar 10-20Kb lebih. Perbedaan lain dari RTOS ini adalah bahwa NuttX sangat berorientasi standar. Anda dapat menganggap NuttX sebagai Linux yang sangat kecil. Sebagian besar kode yang mengkompilasi dan berjalan di Linux juga akan berjalan di NuttX (beberapa kode sistem seperti kode jaringan atau daemon mungkin memerlukan beberapa penyesuaian).
Saya pikir RTEMS lebih fokus pada prosesor mikro; NuttX lebih fokus pada pengontrol mikro.