Saya baru di dunia RTOS. Saya berencana untuk menggunakan beberapa RTOS pada Raspberry Pi 3 (mungkin FreeRTOS). Adakah yang bisa menyarankan RTOS mana yang baik untuk pemula?
Karena mereka belum merilis datasheet pada BCM2837, apakah mungkin untuk memuat RTOS ke Raspberry Pi 3?
Jawaban:
Meskipun proyek asli hanya mendukung Raspberry Pi 1, saya telah berhasil menyusun garpu ini pada Raspberry Pi 2, dan dikatakan mendukung 3 juga.
https://github.com/Forty-Tw0/RaspberryPi-FreeRTOS
sumber
Sampai sekarang saya menguji RTOS berikut ini tanpa keberhasilan untuk raspberry pi 3, yang akan membantu seseorang untuk tidak kehilangan waktu (saya buang 3 bulan): FreeRTOS, Xenomai, RTEMS, BitThunder, ChibiOS / RT
Untuk RISC OS, ini bukan RTOS.
Satu-satunya yang saya bisa jalankan di raspberry pi 3 sampai sekarang adalah kernel Fuchsia OS (Magenta), tetapi masih dalam tahap awal dan rendah didokumentasikan
Cara lain adalah membangun RTOS sendiri, ya itu mungkin, menggunakan ULTIBO CORE, dan mengikuti tutorial-tutorial tersebut: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- programming-in-cpt1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ
sumber
ARM, keluarga ISA yang digunakan oleh prosesor Broadcom pada semua model Raspberry Pi saat ini, didasarkan pada RISC , yang untuknya RISC OS ditulis. RISC OS Saya pikir mendominasi pada perangkat ARM untuk dekade pertama mereka, sebagai perusahaan teknologi yang sama berbasis di Inggris (Acorn) awalnya dirancang baik ARM dan RISC OS. Faktanya, ARM awalnya merupakan singkatan dari "Acorn RISC machine", dan sebagian alasan Raspberry Pi disebut apa adanya adalah karena tradisi di Inggris dalam penamaan sistem komputer setelah buah atau kacang.
RISC OS bukanlah sistem operasi real-time yang sebenarnya, namun RISC OS menggunakan multi-tasking kooperatif , artinya Anda dapat menjalankan proses yang secara sukarela menolak menyerahkan diri ke proses lain. Apa konsekuensi yang mungkin saya tidak ketahui, tetapi saya berasumsi bahwa:
Anda dapat mengonfigurasi hal-hal untuk memungkinkan ini tanpa masalah, tetapi itu mungkin melibatkan pembatasan pada apa yang dapat dicapai OS (misalnya, berkenaan dengan jaringan).
Konteks beralih ke mode kernel hanya akan terjadi karena panggilan sistem yang dibuat oleh proses untuk menyelesaikan tujuannya.
Itu cukup dekat dengan fungsi waktu nyata, tergantung pada seberapa "waktu nyata" yang Anda butuhkan. Lebih lanjut, ada beberapa konfirmasi bahwa RISC OS berjalan pada Pi 3 .
sumber
Karena definisi RTOS bervariasi pada aplikasi, biasanya komputer yang berpura-pura menjadi sesuatu yang lebih sederhana, RISC OS adalah RTOS untuk aplikasi menengah-kompleks, dan tidak harus untuk yang kompleks tinggi, meskipun RTOS sangat kompleks Kedengarannya seperti kontradiksi. Contoh oleh Mahmoud Almostafa RABBAH mengacu pada tidak ada OS, dan menjalankan program penugasan tunggal langsung dari boot-loader, yang juga bukan RTOS.
Satu-satunya cara yang masuk akal untuk memahami ini adalah dengan membagi definisi RTOS menjadi tiga tingkatan:
Kompleksitas rendah akan menjadi sesuatu seperti mesin cuci atau data logger, dan Anda mungkin lebih baik dengan perangkat keras yang lebih sederhana misalnya Arduino atau mungkin MCU yang lebih sederhana, atau bahkan hanya logika sekuensial, di tempat pertama. Itu akan menghabiskan lebih sedikit daya, dan akan jauh lebih sedikit untuk dikhawatirkan: Jangan pernah membuat hal-hal lebih rumit daripada yang seharusnya.
Kompleksitas tinggi akan menjadi sesuatu seperti sistem multi-tasking penuh, yang bukan RTOS. Mungkin lebih baik menjalankan GUI Anda di perangkat terpisah, jika Anda menginginkannya. Kompleksitas tinggi juga bisa berupa proses pemantauan yang memanggil proses lain, dan beberapa harus diprioritaskan, tetapi sekali lagi Anda lebih baik dengan semacam pemrosesan paralel di sana, atau gagal dalam kemampuan merespons secara real-time.
Kompleksitas sedang akan menjadi tempat Anda membutuhkan antarmuka yang dapat disediakan oleh OS normal, misalnya USB, dan mungkin output tampilan kecil, tetapi Anda ingin memproses aliran data dan tidak terganggu oleh apa pun. Ini terdengar seperti tingkat aplikasi otomotif.
Untuk itu, Anda dapat mengkompilasi sesuatu tanpa OS, menggunakan mesin host untuk mengembangkannya, atau Anda dapat menggunakan versi RISC OS yang melakukan boot langsung ke BASIC dan mengembangkannya pada mesin target, yang biasanya lebih mudah.
Itu akan menjalankan satu tugas yang bisa cukup cepat untuk polling untuk sejumlah acara, tanpa terganggu oleh hal-hal lain. Gangguan perangkat keras masih akan berjalan kecuali dinonaktifkan (cukup mudah dilakukan), dan itu diperlukan untuk membuat tampilan / USB dll berfungsi. Perangkat keras lainnya mengganggu timer dan IO yang mungkin tidak Anda gunakan.
Keuntungan lain dari RISC OS dalam aplikasi RTOS, adalah Anda hanya dapat menggunakan modul yang Anda butuhkan, sesuatu yang tidak masuk akal dalam aplikasi GUI tradisional, dan telah digunakan oleh misalnya STD / AdvantageSix [1] walaupun mereka menggunakan istilah "embedded system" bukannya "RTOS". Kelebihan yang dimilikinya adalah desain yang disederhanakan, kebutuhan daya yang lebih rendah, penggunaan memori yang lebih rendah, dan waktu boot yang lebih cepat (beberapa antarmuka perangkat I / O membutuhkan booting mini sendiri, dan OS harus berpartisipasi dalam hal ini, meskipun rentang waktu biasanya terlalu pendek untuk diperhatikan ).
Saya harap keduanya mengisi beberapa celah dalam info di atas, dan memperjelas kesenjangan dalam pengetahuan saya sendiri.
[1] http://www.untunganagesix.co.uk/about_us.html (Contoh lain dari memori, tidak lagi tersedia online.)
sumber