📚 Learn to write an embedded OS in Rust 🦀
Go to file
2019-10-27 23:12:19 +01:00
.githooks Initial preparations for rewrite 2019-10-27 23:09:23 +01:00
01_wait_forever Adapt tooling settings 2019-10-27 23:12:19 +01:00
02_runtime_init Adapt tooling settings 2019-10-27 23:12:19 +01:00
03_hacky_hello_world Adapt tooling settings 2019-10-27 23:12:19 +01:00
04_zero_overhead_abstraction Adapt tooling settings 2019-10-27 23:12:19 +01:00
05_safe_globals Adapt tooling settings 2019-10-27 23:12:19 +01:00
06_drivers_gpio_uart Adapt tooling settings 2019-10-27 23:12:19 +01:00
07_uart_chainloader Adapt tooling settings 2019-10-27 23:12:19 +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 Adapt tooling settings 2019-10-27 23:12:19 +01:00
.gitignore Ignore cargo built files 2019-03-19 23:38:04 +01:00
.rubocop.yml Adapt tooling settings 2019-10-27 23:12:19 +01:00
.rustfmt.toml Adapt tooling settings 2019-10-27 23:12:19 +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 Rustup 1.20 searches for components itself 🎉 2019-10-27 23:12:13 +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.

curl https://sh.rustup.rs -sSf  \
    |                           \
    sh -s --                    \
    --default-toolchain nightly \
    --component rust-src llvm-tools-preview clippy rustfmt rls rust-analysis

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