Pemrograman C Bare-Metal C pada lengan
Repositori ini berisi ebook tutorial tentang pemrograman sistem lengan logam telanjang. Lebih khusus berurusan dengan versi ARMV7A dari platform ARM Versatile Express, ditiru pada PC biasa melalui QEMU. Anda dapat menjelajahi repositori, atau membaca sesuatu secara berurutan.
Daftar isi
Versi PDF terkini juga tersedia.
Bab -bab berikut dapat dianggap sebagai edisi pertama ebook, memberikan jalur lengkap dari memulai program kerja yang menggunakan fitur perangkat keras.
- Bab 0: Pendahuluan. Intro singkat untuk subjek dan ebook.
- Bab 1: Pengaturan. Bab pendek yang berurusan dengan mempersiapkan lingkungan Linux untuk pengembangan lebih lanjut.
- Bab 2: Boot pertama. Penggunaan dasar QEMU dan toolchain lintas kompiler, mendapatkan kode yang paling sederhana untuk dijalankan.
- Bab 3: Menambahkan bootloader. Membangun bootloader U-boot yang sangat populer, dan membuatnya boot kode kami sendiri.
- Bab 4: Mempersiapkan lingkungan C. Bab ini membahas pekerjaan yang diperlukan untuk mendapatkan dari startup dalam kode perakitan ke kode C.
- Bab 5: Sistem Bangun & Debug. Di sini kami menunjukkan bagaimana pekerjaan dapat dirampingkan dengan menambahkan sistem build berbasis CMAKE, dan bagaimana program telanjang dapat didebug.
- Bab 6: Pengembangan Pengemudi UART. Dalam bab ini, driver perangkat untuk UART ditulis.
- Bab 7: Interupsi. Bab ini melewati pengaturan ARM generik pengontrol interupsi, menggunakannya untuk menerima dan merespons interupsi. Juga driver UART diadaptasi untuk menggunakan interupsi.
- Bab 8 - WIP: Penjadwalan. Bekerja dalam proses.
Struktur repositori
Repositori terdiri dari dua folder tingkat atas. Folder doc berisi bab tutorial yang sebenarnya. Folder src berisi kode sumber yang sesuai dengan setiap bab. Jadi, misalnya, SRC/04_CENV berisi kode sumber seperti yang terlihat setelah menyelesaikan Bab 4.
Selain itu, folder src memiliki beberapa hal bersama. src/common_uboot memegang versi u-boot yang digunakan dalam contoh.
Bersenang -senanglah, dan jangan ragu untuk mengubah dan bereksperimen, bahwa menjadi cara yang bagus untuk belajar!