U00: Down to the Metal

    ____  _____               ______          __    __  __
   / __ \/ ___/__  _______   / ____/___ ___  / /_  / / / /
  / / / /\__ \/ / / / ___/  / / __/ __ `__ \/ __ \/ /_/ /
 / /_/ /___/ / /_/ (__  )  / /_/ / / / / / / /_/ / __  /
/_____//____/\__, /____/   \____/_/ /_/ /_/_.___/_/ /_/
            /____/

Welcome back at DSys GmbH, we are happy to have you as a new embedded engineer.

Cyber-Physical Systems vs. Embedded Systems

CPS is the newer term (2006), Embedded has been around for a while.

Core Practical & Academic Challenge: "Passing of time is inexorable". [Lee08]

We talk about safety-critical systems, when they impose risk of loss.
loss related to human health, property, environment

As of today, development of embedded / CPS is quite unalike development of, e.g., desktop / web applications, partly due to differences in...

  • Requirements
    time-awareness, fail-safe, operation in adverse environments, constrained resources, focus on sense/control/act over compute, ...
  • Methodology
    V-model, verification & validation, regulation, certification, ...
  • Ecosystem
    proprietary platforms & tools, closed source, distribution of compiled artifacts, ...

Why Embedded Rust?

Considering the existing embedded ecosystems, C(++) would be a better choice, right?

Embedded Rust aims to be...

  • Safe: Thread-, and Memory-Safety, enforce correct API usage via type-system
    embedded-hal, rtic, embassy, uom, ...

  • Productive: ergonomic frameworks as well as tools
    probe-rs, defmt, ...

  • Open: many common crates provided under permissive license via crates.io
    ."everything" presented today should be under a permissive license

Rust: A language empowering everyone to build reliable and efficient software...

... for embedded / cyber-physical systems.

An Abstract System Map

largely simplified — real systems are orders of magnitude more complicated


Latency-, Reliability-, and Energy-Awareness

Dependability

Hands-On

The Hardware

Use https://gitlab.com/rust-saar/material/-/blob/main/2022_01_11/02-Embedded-Rust.pdf Slide 7

Setup

https://gitlab.com/rust-saar/material/-/blob/main/2022_01_11/02-Embedded-Rust.pdf Slide 26

  • knurling tools
  • probe-rs