Memulai pembelajaran dengan rust menjadi menarik ketika sekarang kernel ternyata bisa dibuild dengan menggunakan rust. Saya mencari beberapa tutorial menggunakan rust dan qemu.
Saya menggunakan MSYS UCRT64 sebagai awal test agar nantinya program bisa dilakukan langsung dirun dengan menggunakan qemu.
pertama install cargo generate
cargo install cargo-generate
kemudian generate beberapa project.
cargo generate --git https://github.com/rust-embedded/cortex-m-quickstart
dalam code src nanti kalian akan menemukan code seperti berikut
#![no_std]
#![no_main]
// pick a panicking behavior
use panic_halt as _; // you can put a breakpoint on `rust_begin_unwind` to catch panics
// use panic_abort as _; // requires nightly
// use panic_itm as _; // logs messages over ITM; requires ITM support
// use panic_semihosting as _; // logs messages to the host stderr; requires a debugger
use cortex_m::asm;
use cortex_m_rt::entry;
#[entry]
fn main() -> ! {
asm::nop(); // To not have main optimize to abort in release mode, remove when you add code
loop {
// your code goes here
}
}
ternyata ketika saya membuildnya dengan command
cargo build --target thumbv7m-none-eabi
memberikan error bahwa
error: failed to download `proc-macro2 v1.0.70`
saya mencoba check versionnya ternyata versi ke
$ rustc --version
rustc 1.42.0 (b8cedc004 2020-03-09)
lalu saya update dengan perintah
rustup update
walaupun ada notivikasi telah terupdate ke versi 1.72.0 tetapi tetap saja ahsil rustc –version masih sama seperti berikut
>rustc --version
rustc 1.42.0 (b8cedc004 2020-03-09)
akhirnya saya memilih untuk menguninstall rust tersebut dengan command berikut.
rustup self uninstall
kemudian saya install lagi dengan rust init yang saya download pada pc windows saya, dan ternyata berhasil. Saya coba lagi membuild ulang dengan
cargo install cargo-generate