This course is available Live Online worldwide: View the Live Online full course description »
Rust Fundamentals provides attendees with a full grounding in the Rust programming language. It is sufficient to get you started in your Rust programming journey. The syllabus, examples and exercises are tuned to the practical requirements for embedded software developers.
Workshops and the hands-on interactive coding quizzes that are interlaced with the lecture deliveries, comprise approximately 50% of class time and are based around carefully designed hands-on exercises to reinforce learning. This training class is designed around interactivity and student engagement. Throughout the lectures the students are asked to run code snippets to demonstrate complex concepts, debug and refine provided examples. These various exercises will be achieved using a mix of web-based tools integral to the training material as well as a provided virtual-machine environment that the student will be able to keep post-training to further their experiments with a Rust based embedded software tool-kit.
Please contact Doulos for further information about this training.
This course is designed as a general introduction to Rust programming.
It is suitable for embedded software engineers who need to gain a working knowledge of the Rust language to build an embedded system.
It is a prerequisite for the follow-on class Rust for Embedded Firmware. Please contact Doulos for further information about this training.
Rust Fundamentals does not assume a prior knowledge of C/C++ or assembly, however this would be an advantage.
Equally, embedded programming experience and microcontroller knowledge is not essential to participate to the training, but useful.
This course is not suitable as a first course in computer programming.
Doulos course materials are renowned for being the most comprehensive and user friendly available. Their unique style, content and coverage has made them sought after resources in their own right. The materials include:
Attendees will also be provided with virtual-machine environment to keep post-training to further their experiments with a Rust-based embedded software tool-kit.
The Virtual Machine (VM) needs to be downloaded and set up on your PC before the course begins. The size of the VM is approximately 9GB so it may take a few minutes to download depending on the internet speed. While configuring the VM, make sure you have at least 23GB of free space on your hard drive. You will get detailed instructions on how to set up the VM as part of the course joining instructions.
Rust Fundamentals will cover the topics below.
Integral to the course are hands-on sessions for almost all topics covered, complemented by a project developed through the course, which integrates the acquired knowledge with a working example that can be used as a basis for real projects.
Rust application overview
Rust's 101 • How does Rust compare to other languages? • Safety features in the Rust language • Rust tools for embedded development • Memory control • Rust's embedded credentials
Rust language overview
Syntax rules and conventions • Declarations and statements • Rust expressions • Rust loops • Fields and scopes • Rust abstract data types
Data types in Rust
Scalar types • Type casting • Compound types
Arithmetic operators • Logical operators • Relational operators • Type operators
Variables, Constants, Mutable
Scope of declaration • Mutability • Memory allocation
Conditional execution • Pattern matching • Rust Loops and early terminations
Ownership and Borrowing
The ownership paradigm • Shared references • Mutable references • Move versus copy types
Arguments list • Return values • Local declarations • Formal VS actual arguments' kind • Function pointers • Closures and functional programming
Advanced function definitions
Overloading • Lifetimes • Generic functions
More on Types
String types • Struct Types • Enumerated Types • Options and Results • The Box Type
Crates and modules
What are crates? • Commonly used crates in Rust • Creating and using crates • Crates in embedded Rust #![no_main] #![no_std] • What are modules? • Basic module implementation • Hierarchical modules • Managing abstraction with pub • pub use case with struct, enum, trait, mod • Accessing the module's content
Abstraction and Implementation
Generic and Traits
Complete an enquiry form and a Doulos representative will get back to you.
Enquiry FormPrice on request