Apakah Raspberry Pi 3 mendukung RTOS?

12

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?

Akankah ini membantu?

berpasir
sumber
1
Tentu saja tidak ada alasan mengapa Anda tidak dapat memuat RTOS ke RPi. Namun, meminta rekomendasi OS tertentu adalah di luar topik.
Chenmunka
1
Mungkin ada yang tahu mengapa Anda membutuhkan RTOS? Apa yang akan memberi Anda bahwa OS lain tidak akan? Apa persyaratan waktu nyata yang harus Anda penuhi? Bisakah Anda menjelaskan apa yang membuat RTOS baik untuk pemula?
joan
1
@Chenmunka "Mana RTOS terbaik untuk RPi?" ("untuk pemula" atau yang lainnya) akan di luar topik sebagai berbasis opini. Ini semacam itu, tetapi judulnya secara harfiah "Apakah raspberry pi 3 mendukung RTOS?" -> Seperti yang Anda tunjukkan, mungkin ya. Jika sisa pertanyaan benar-benar diartikan, apa RTOS yang ada, maka tidak apa-apa - yang pasti merupakan sifat dari jawaban aktual, saya akan berpikir. Setidaknya ada satu ... semacam itu.
goldilocks
@ Joan Saya perlu RTOS untuk solusi yang tertanam untuk aplikasi otomotif. Karena saya baru menggunakan RTOS, saya bertanya-tanya apakah itu dapat disandarkan dengan perangkat keras yang tersedia (rpi-3) di rumah .
sandy
Lihatlah inti Ultibo. Mungkin itu yang Anda butuhkan. ultibo.org
avra

Jawaban:

7

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

jordi
sumber
Apakah Anda berhasil mengirimnya ke Raspberry Pi3?
LandonZeKepitelOfGreytBritn
Tidak. Hanya melakukannya di Pi2. Maaf
jordi
5

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

Mahmoud Almostafa RABBAH
sumber
1
Saya telah berhasil menggunakan Xenomai 2.6.5 pada Raspberry Pi 3 (menggunakan kode dari github.com/margro/linux ).
steviethecat
4

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 .

goldilocks
sumber
Terima kasih balasannya. Sepertinya benar-benar tidak perlu menggunakan OS lain untuk rpi-3 karena OS yang berada juga real time. Aplikasi saya menargetkan ke perangkat keras tertanam yang tidak dapat memiliki OS berbasis linux seperti raspbian karena kendala memori. Intinya adalah, dapatkah saya memuat RTOS lain yang memiliki jejak memori kecil pada rpi-3 hanya untuk membiasakan diri dengan dunia RTOS? Apakah ada batasan pada rpi-3?
sandy
1
Maaf: Untuk menjelaskan, ini bukan forum diskusi . Silakan ikuti tur lagi dan perhatikan bagian "Dapatkan jawaban untuk pertanyaan praktis dan terperinci" . Sepertinya Anda meninggalkan detail dari pertanyaan Anda, mengundang orang lain untuk membuang waktu mereka memberikan jawaban yang bukan yang Anda cari sehingga Anda bisa mempersempitnya setelah gaya diskusi. Itu bukan cara SE bekerja. Jika Anda memiliki pertanyaan yang berbeda, ajukan pertanyaan yang berbeda. Jangan edit yang ini untuk mengubah arti aslinya atau saya akan menutupnya. Terima kasih.
goldilocks
1
Saya akan memberi Anda sedikit nasihat: Jika Anda mencari OS yang akan berjalan pada sistem dengan memori sub MB, Anda harus mencari tahu dulu apa pilihan Anda. Hanya memilih OS waktu nyata secara acak "untuk latihan" mungkin berakhir dengan mengajarkan Anda apa-apa tentang yang akhirnya harus Anda gunakan. Jadi jangan buang waktu Anda. Cari tahu apa yang perlu Anda gunakan, lalu tanyakan apakah Anda dapat menggunakannya pada pi, dll.
goldilocks
0

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.)

Robin Hodson
sumber