rust_logo

Using Rust for Secure Embedded Development

Information

Interested? Contact us!
3 days
Contact us for price

Request more information

Lena Bernhardsson – SE, DK, NO
+46 (0) 40 59 22 09
lena.bernhardsson@nohau.se

Heidi Lehtomäki – Finland
phone: +358 40 196 0142
heidi.lehtomaki@nohau.fi

What is Rust?

Rust is an excellent modern programming language for embedded systems design. It allows for the same precision as C language, while also providing high-level abstractions and safety against the memory allocation issues that typically scourge old languages. Programs written in Rust are more dependable with the productivity rate easily comparable with that of Python.

In a StackOverflow survey (2021) targeted for developers, Rust was the most popular programming language for the sixth year in a row. According to the study, 87% of Rust users are not willing to shift away from Rust.

Why use Rust on Embedded Development?

While offering reliability and efficiency, Rust also provides a blazingly fast speed and excellent memory utilization, making it an excellent choice for performance-critical services running on embedded devices.

Rust is a statically typed language designed keeping security and high performance in mind. It’s especially suitable for safe concurrency and memory management, addressing the common problems related to memory errors and concurrent programming.

It is also a low-level programming language, enabling a direct access to hardware and memory. This makes it very attractive language for developing embedded applications.

Increasingly growing amount of Linux kernel code lines is written in Rust. The language also integrates easily with other languages.

Course Description

This course provides embedded developers with an introduction to Rust, equipping them with basic level understanding of what is required in order to write Rust code on embedded targets.

The course provides the participants with the necessary background concepts and programming techniques enabled by Rust, enabling effective software development in their own projects.

The course contains hands-on exercises on an embedded target assisted by the course trainer.

Course Material and Literature

To be announced later.

Introduction
– Rust now – where is it used?
– History
– Philosophy of Rust

Installation
– rustup
– cargo
– VSCode / IntelliJ IDEA

Rust language fundamentals
– Basic structure
– Rust data primitives
– Compound data types
– Condition and repetition

Rust-specific structures
– Error handling
– Not Nul but Option
– match

Ownership
– cloning
– borrowing

Traits
-Derive

Rust memory handling
-Memory structures: static, stack, heap

Strings
-&str vs. String
-UTF-8

Iterators
-itertools

Generics
Inbuilt testing
– cargo test
– cargo bench

Compilation parameters, #![]

Basic data types, bit operations

Inbuilt documentation
– cargo doc

Choosing target architectures
– toolchains

Macros
– declaratives
– procedurals

Unsafe
– asm

Special topics
– How to build a program with a minimal runtime?
– Programming with core-libs only (not std) without heap
– FFI interface with C programs

Wrap-up & Summary

Do you wish more information!

Contact us for offers, information or advice!