Saya sudah menemukan tutorial Baking Pi , tetapi mereka hanya menggunakan bahasa assembly . Saya mengikuti pelajaran pertama, tetapi saya sudah bertanya-tanya bagaimana cara menggunakan C sebagai gantinya. Maksud saya, ada alasan mengapa mereka menciptakan bahasa tingkat tinggi. Saya mencoba mengkompilasi kode C ke .o
file object ( ), mengkompilasi
.section .init
.globl _start
_start:
bl main
loop$:
b loop$
ke file objek lain dan menautkannya bersama sehingga memperoleh kernel.img
. Saya kemudian mengganti kernel yang sudah ada dengan kernel saya sendiri, tetapi tidak menjalankan kode C. Kode C yang saya tulis harus menyalakan OK LED dan kemudian kembali (kemudian muncul loop$: b loop$
). Tetapi LED OK berkedip secara acak beberapa kali dan kemudian mati. Ini kode C saya:
int main(int argc, char ** argv) {
volatile unsigned *gpioAddr = (volatile unsigned *)0x20200000;
*(gpioAddr + 4) = 1 << 18;
*(gpioAddr + 40) = 1 << 16;
return 0;
}
Bagaimana cara saya menggunakan C untuk pengembangan sistem operasi pada Raspberry Pi?
Saya ragu itu adalah kesalahan dalam kode (meskipun saya hanya penggemar). Saya sadar mengatur C mungkin rumit, tetapi saya bukan yang pertama melakukan ini. AFAIK, semua OS yang dominan saat ini kebanyakan ditulis dalam C, jadi harus ada artikel yang menjelaskan prosesnya. Saya akan sangat senang dengan daftar langkah juga, jadi saya bisa google untuk langkah-langkah itu dan mungkin mengajukan pertanyaan yang sedikit kurang luas.
Catatan: rakitan ARM yang setara dengan kode C di atas berfungsi dengan baik. Menyalakan LED (setelah sedikit berkedip). Saya pikir (harapan) yang menunjukkan Raspberry Pi saya baik-baik saja.