📚 Learn to write an embedded OS in Rust 🦀
Go to file
2019-10-27 23:12:08 +01:00
.githooks Initial preparations for rewrite 2019-10-27 23:09:23 +01:00
01_wait_forever Update README.md 2019-10-27 23:12:04 +01:00
02_runtime_init Big restructuring for more modularity 2019-10-27 23:11:52 +01:00
03_hacky_hello_world Add arch use clause 2019-10-27 23:11:55 +01:00
04_zero_overhead_abstraction Add arch use clause 2019-10-27 23:11:55 +01:00
05_safe_globals Update README.md 2019-10-27 23:12:05 +01:00
06_drivers_gpio_uart Update README.md 2019-10-27 23:12:08 +01:00
doc Initial preparations for rewrite 2019-10-27 23:09:23 +01:00
docker Change some more license headers to SPDX 2019-10-27 23:11:50 +01:00
utils Clean at the end 2019-10-27 23:11:57 +01:00
.gitignore Ignore cargo built files 2019-03-19 23:38:04 +01:00
contributor_setup.sh Add a pre-commit hook 2019-01-12 21:55:28 +01:00
LICENSE Initial preparations for rewrite 2019-10-27 23:09:23 +01:00
README.md Update README.md 2019-10-27 23:12:02 +01:00

Operating System development tutorials in Rust on the Raspberry Pi 3

Notice

This is a work-in-progress rewrite, started on September 2019. I will first add code and minimal READMEs, and later write accompanying full-fledged tutorial text.

  • Check out the make doc command to browse the code with HTML goodness.
  • Note that the branch is subject to frequent force pushing. If updates happened since you last visited, make sure to clone a clean copy to be safe.
  • For editing, I recommend Visual Studio Code with the Rust Language Server extension.
  • For practical purposes, the kernel will be a classic monolith.

Cheers, Andre

Prerequisites

Before you can start, you'll need a suitable Rust toolchain. Please browse to the rustup components history and note the date of the most recent build that shows clippy as present.

Then, proceed to install this nightly using your noted date:

curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-YOUR_DATE_HERE
# For example:
# curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2019-09-05

rustup component add rust-src llvm-tools-preview clippy rustfmt
cargo install cargo-xbuild cargo-binutils

USB Serial

I'd also recommend to get an USB serial debug cable. You connect it to the GPIO pins 14/15.

Tutorial 6 is the first where you can use it. Earlier tutorials will work solely with QEMU.

UART wiring diagram

License

Licensed under the MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT).