Adakah yang mengevaluasi NuttX RTOS?

15

Saat membaca Linux User's Journal hari ini, saya menemukan sedikit uraian tentang NuttX RTOS. Saya memeriksa situs web mereka dan cukup terkesan dengan set fitur dan kemampuannya untuk memasukkannya ke 8.052! Saya merasa menarik bahwa ia mendukung POSIX yang merupakan sesuatu yang saya bantu kerjakan untuk salah satu klien saya RTOS in-house. Yang ini tampaknya sedikit lebih kaya fitur daripada RTOS in-house.

Adakah orang lain yang pernah mendengar tentang NuttX dan telah mencobanya? Jika demikian, bagaimana perbandingannya dengan RTOS lain seperti FreeRTOS ?

Jay Atkinson
sumber
1
Saya baru mulai bermain dengan RTOS, dan ketika saya bertanya di sini saya mendapat saran yang bagus, tetapi saya merasa bahwa sebagian besar pengguna di sini tidak tahu apa itu RTOS. Saya tidak bermaksud ini dengan cara yang buruk, saya hanya berpikir mungkin ada nilai menanyakan ini di forum lain juga untuk meningkatkan kesempatan Anda menerima jawaban yang baik.
Kortuk
Saya harus tetap mencoba :-) Anda tidak pernah tahu siapa yang mengintai di sini :-)
Jay Atkinson
Ya, saya juga menanyakan pertanyaan serat di sini. Tidak ada salahnya berharap untuk gigitan.
Kortuk
Mulai hadiah! Saya tertarik dengan perbandingan antara RTOS.
tyblu
7
Mengapa ada suara untuk menutup pertanyaan ini? RTOS digunakan dalam elektronik dan robotika sepanjang waktu.
Kellenjb

Jawaban:

17

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.

patacongo
sumber
4

Lisensi adalah perbedaan lain yang perlu diingat ketika memilih RTOS sumber terbuka. Terutama jika Anda berencana untuk menggunakan RTOS dalam proyek komersial. Sebagian besar RTOS sumber terbuka memiliki lisensi GPL yang dimodifikasi. Modifikasi lisensi biasanya menentukan bahwa Anda tidak harus memiliki kode hak milik Anda yang tertaut dengan GPL RTOS (tetapi Anda masih harus merilis file RTOS dengan modifikasi Anda).

NuttX (dan mungkin yang lain) memiliki lisensi BSD yang tidak dibatasi, dimodifikasi. Dengan lisensi BSD, Anda pada dasarnya dapat mengambil kode dan menggunakannya seolah-olah kode itu sendiri tanpa kewajiban selain mempertahankan informasi lisensi dan hak cipta di dalam file.

patacongo
sumber
Nutt, apakah Anda ingin saya mengedit informasi ini menjadi jawaban Anda yang lain, sepertinya mereka cocok.
Kortuk
Tentu, silakan saja. Kata-kata kasar tentang 8051 dan 80c52 dan hc12 juga tampaknya di luar konteks di sini.
patacongo
Saya hanya memastikan bahwa Anda menyadari bahwa Anda dapat mengedit lebih banyak. Karena Anda mengetahuinya dan melakukannya dengan sengaja, kami dapat meninggalkannya di sini. Biasanya Anda bisa mengedit di bagian lain dan menggunakan judul. Beri tahu saya jika saya dapat membantu jika Anda berubah pikiran.
Kortuk