Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Home

This course is intended to be a starting off point into embedded systems. If you are just starting, the first chapter will walk you through your environment setup and provide a supply list with links to an online supplier. You are reading a book hosted on GitHub Pages, the source code and examples are hosted here.

A few common questions:

Is this for me?

  • This course is for people that already have experience programming that want an overview of embedded development.
  • This course is not for people trying to explicitly learn Rust, it is an embedded course that just so happens to use Rust.

Are we going to be covering X feature?

  • This course is supposed to be as simple as possible so likely not, however, I am more than willing to explore anything that has sufficient interest.

How should I edit this code?

  • Use whatever editor you are comfortable with. If you do not have a preference, VSCode is a great place to start.
  • Ensure that whatever editor you choose can utilize the Rust Analyzer LSP.

How should I follow along the exercises?

  • I suggest that you avoid pulling the repository and just using the code as is. Walking through the chapters should give you enough information to program most of the functionality yourself.
  • It is however, totally fine to pull the repository to take advantage of the configuration that has been done for different IDEs and the probe.
  • The completed code along with all the required configuration is in the repo if you get stuck on anything in the course.

Why Rust?

  • The Rust compiler's strict nature makes whole classes of errors difficult or impossible to come across. This particularly benefits students and empowers professionals alike.
  • The dependency ecosystem of Rust, while immature compared to C, is amazingly easy to use compared to some of the development environments that hardware manufacturers put together. I wanted to be able to step up the ladder of abstraction in a way that not many environments allow for.
  • I like Rust, and I am writing this, so I will use what I want.