📚 Learn to write an embedded OS in Rust 🦀
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Andre Richter 28bd523851
Update README.md
5 years ago
.githooks Initial preparations for rewrite 5 years ago
01_wait_forever Update README.md 5 years ago
02_runtime_init Big restructuring for more modularity 5 years ago
03_hacky_hello_world Add arch use clause 5 years ago
04_zero_overhead_abstraction Add arch use clause 5 years ago
05_safe_globals Defer BSP driver init to BSP code 5 years ago
06_drivers_gpio_uart Update README.md 5 years ago
doc Initial preparations for rewrite 5 years ago
docker Change some more license headers to SPDX 5 years ago
utils Clean at the end 5 years ago
.gitignore Ignore cargo built files 5 years ago
LICENSE Initial preparations for rewrite 5 years ago
README.md Update README.md 5 years ago
contributor_setup.sh Add a pre-commit hook 5 years ago

README.md

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).