Raspberry PI tanpa OS di atasnya?

9

Saya telah melakukan banyak hal dengan Arduino baru-baru ini. Ini sangat sederhana karena Anda dapat langsung mengeksekusi kode C ++ di atasnya tanpa perlu sistem operasi atau driver.

Saya sudah melakukan beberapa riset dan AFAIK, Anda biasanya menginstal Linux pada Raspberry PI dan membuat skrip python atau binari C ++.

Pertanyaan: Apakah mungkin menjalankan kode di atasnya tanpa sistem operasi apa pun, tetapi masih dapat menggunakan kartu HDMI dan SD?

bytecode77
sumber
2
Anda mungkin menemukan lebih mudah untuk melakukan proyek bare-metal pada prosesor ARM yang lebih kecil dan kurang mampu, tetapi lebih lengkap didokumentasikan. Meskipun hati-hati terhadap implementasinya yang buruk, adaptor debug berpemilik pada papan dev murah - kadang-kadang driver terbalik direkayasa terbuka, atau Anda dapat membeli jtag asli atau menggunakan bootloader serial. Setidaknya dengan pi Anda harus dapat mengharapkan dukungan toolchain yang baik.
Chris Stratton

Jawaban:

16

Jalankan kode pada RaPi tanpa OS: Tidak masalah. David Welch telah melakukan pekerjaan kasar, periksa gitub- nya . Pada dasarnya, Anda dapat mengambil file startup standar dan mengganti kernel.img dengan file yang ingin Anda jalankan. Untuk menghindari 'tarian kartu SD' Anda dapat menjalankan bootloader yang menerima image-to-be-run melalui saluran serial. Saya telah menambahkan reboot otomatis, sehingga Anda dapat menjalankan gambar baru 'lepas tangan'. Jika Anda ingin pergi dengan rute ini, saya memiliki beberapa informasi lebih lanjut.

Jalankan aplikasi bare-metal Anda sendiri dan gunakan layar dan kartu SD : Itu masalah. Semua informasi tersedia jauh di sumber-sumber Linux, dan ada orang yang mengerjakan ini (periksa DexO ?), Jadi saya berasumsi dalam setengah tahun atau lebih, info ini akan menjadi rahasia umum. Tetapi untuk sekarang saya akan mengatakan ini mungkin terlalu banyak pekerjaan.

Wouter van Ooijen
sumber
Saya bertanya-tanya bagaimana CPU dapat memuat kernel dari kartu SD tanpa driver yang sesuai untuk kartu SD dan sistem file?
bytecode77
1
File dasar yang Anda butuhkan (dan dapat diunduh dari situs RaPi, sendirian atau sebagai bagian dari distribusi Linux) termasuk file startup untuk GPU. Agaknya GPU memiliki beberapa bootROM bawaan yang memungkinkannya untuk membaca SD, memuat kodenya, memuat kernel.img, dan mengaktifkan CPU ARM.
Wouter van Ooijen
@DevilsChild - banyak CPU memiliki bootloader dasar bawaan, bagian TI Davinci yang saya kerjakan memiliki "ROM bootloader" yang dapat bekerja melalui serial atau dari kartu SD. Kartu SD menggunakan antarmuka SPI dasar.
John U
5

Itu selalu mungkin, tetapi Anda harus menulis driver Anda sendiri untuk HDMI dan antarmuka SD, dan mungkin juga sistem file untuk yang terakhir.

stevenvh
sumber
1
Sebenarnya itu akan sangat rumit karena GPU yang dimulai pertama dan kemudian perlu memuat beberapa biner Broadcom untuk memulai CPU. Juga, jika saya ingat dengan benar, driver GPU dan firmware adalah sumber tertutup juga.
AndrejaKo
Apakah ada driver yang tersedia yang dapat dimasukkan sehingga akan berfungsi? Ada ide?
bytecode77
@Devils Child Saya tidak yakin betapa mudahnya atau bagaimana mendokumentasikan semuanya. Saya pikir Anda mungkin dapat menggunakan bootloader yang ada untuk memuat gambar OS Anda sendiri dan memulai CPU, tetapi kemudian masalah yang Stevenvh tulis dalam jawaban menunjukkan: Anda harus menulis driver dan sebagian besar dokumentasi untuk mereka bukan t tersedia.
AndrejaKo
@DevilsChild - driver yang ada kemungkinan besar akan ditulis untuk OS tertentu, dan jika Anda ingin mengintegrasikannya dalam perangkat lunak Anda sendiri, ia akan memerlukan beberapa fungsinya. Pada akhirnya Anda akan menulis salinan OS (terbatas). Juga, AndrejaKo menunjukkan bahwa itu akan sangat sulit, dan firmware sumber tertutup tidak membuat segalanya menjadi lebih mudah. Mengapa Anda tidak menginginkan OS?
stevenvh
1
@ EvilsChild perbedaan penting antara komputer papan tunggal dan VM adalah bahwa Anda dapat menempatkan papan di tempat lain selain lokasi fisik mesin hosting VM; juga cenderung memiliki I / O dunia nyata yang lebih baik. Tetapi VM, dan emulator atau simulator yang lebih terspesialisasi sering kali memiliki peran penting, seperti membiarkan tim perangkat lunak mulai bekerja sebelum perangkat keras ada, atau menghindari mereka memperebutkan satu-satunya papan prototipe yang telah dikerjakan ulang agar berfungsi, atau berjalan tes regresi tanpa mengikat koleksi perangkat fisik ...
Chris Stratton
3

Apa yang mereka semua katakan, tetapi, jalan TERMUDAH adalah menjalankan distro Linux yang melakukan apa yang Anda inginkan dan seminimal mungkin, lalu menanggalkan apa pun yang tidak Anda inginkan.

Sebentar lagi itu akan berhenti menjadi Linux dan menjadi bootloader dengan dukungan SD & HDMI. Itu pada dasarnya tidak bisa dibedakan dari apa yang Anda minta dalam semua hal kecuali
- telah diekstraksi dari distro Linux (tetapi tidak lagi Linux) dan
- Anda tidak melakukannya sendiri.

Kecuali jika melakukannya sendiri sepenuhnya sangat penting, ini sepertinya pendekatan yang sangat logis.

Russell McMahon
sumber
0

Jika Anda ingin memprogram "Raspberry Pi as Arduino", lihat wiringPi. Lihat artikel saya di http://www.jating.in/efyarticle/EFYArticle.pdf .

1) Saya membuatnya terlihat dan bekerja seperti Arduino, dengan menggunakan kabel tunggal untuk melakukan konversi USB ke serial dan memberikan daya ke papan juga. jadi hanya satu kabel usb yang cukup seperti Arduino.

2) Saya membuat utilitas kecil yang ketika dijalankan, akan memuat kode Pi kabel melalui baris serial (Sebenarnya semua file teks :-)), kompilasi dan jalankan.,

Jika mau, Anda dapat menjalankannya pada setiap boot dengan memodifikasi file .bashrc, jadi setiap kali boot, itu akan menunggu file baru. Saya tidak memberikan tautan kode utilitas apa pun, tetapi Anda dapat menemukannya di http://www.jating.in/efyarticle/

Jatin Gandhi
sumber