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

Einleitung

Willkommen bei „Das Embedded-Rust Buch“ – einem Einführungswerk zur Verwendung der Programmiersprache Rust auf „Bare-Metal“-Embedded-Systemen, wie etwa Mikrocontrollern.

Für wen Embedded-Rust geeignet ist

Embedded-Rust ist für alle, die eingebettete Systeme programmieren und dabei die Vorteile der fortgeschrittenen Konzepte und Sicherheitsgarantien der Rust-Sprache nutzen möchten.

(Siehe auch Für wen ist Rust geeignet?)

Umfang

Die Ziele dieses Buches sind:

  • Machen Sie Entwickler mit der Embedded-Rust-Entwicklung vertraut – zum Beispiel damit, wie man eine Entwicklungsumgebung einrichtet.
  • Teilen Sie aktuelle Best Practices für den Einsatz von Rust in der Embedded-Entwicklung – zum Beispiel: Wie man Sprachfunktionen von Rust optimal nutzt, um korrektere Embedded-Software zu schreiben.
  • Dient in einigen Fällen als Kochbuch – zum Beispiel: Wie kombiniere ich C und Rust in einem einzigen Projekt?

Dieses Buch ist bestrebt, so allgemein wie möglich zu bleiben; um jedoch sowohl den Lesern als auch den Autoren die Arbeit zu erleichtern, verwendet es in allen Beispielen die ARM-Cortex-M-Architektur. Dennoch setzt das Buch keine Vorkenntnisse zu dieser speziellen Architektur voraus und erläutert die entsprechenden Besonderheiten, wo immer dies erforderlich ist.

Für wen dieses Buch gedacht ist

Dieses Buch richtet sich an Personen mit Vorkenntnissen im Bereich Embedded-Systeme oder Rust; wir sind jedoch der Meinung, dass jeder, der sich für die Embedded-Programmierung mit Rust interessiert, von diesem Buch profitieren kann. Wer keine Vorkenntnisse mitbringt, dem empfehlen wir, den Abschnitt „Annahmen und Voraussetzungen“ zu lesen und sich entsprechendes Wissen anzueignen, um den größtmöglichen Nutzen aus dem Buch zu ziehen und das Leseerlebnis zu verbessern. Im Abschnitt „Weitere Ressourcen” finden Sie Hinweise zu Themen, in die Sie sich bei Bedarf einarbeiten können.

Annahmen und Voraussetzungen

  • Sie sind sicher im Umgang mit der Programmiersprache Rust und haben bereits Rust-Anwendungen in einer Desktop-Umgebung geschrieben, ausgeführt und deren Fehler behoben. Zudem sollten Sie mit den Idiomen der 2018 Edition vertraut sein, da sich dieses Buch auf Rust 2018 konzentriert.

  • Sie sind sicher in der Entwicklung und Fehlersuche bei Embedded-Systemen in einer anderen Sprache wie C, C++ oder Ada und mit Konzepten vertraut wie:

    • Cross-Kompilierung
    • Im Speicher abgebildete Peripheriegeräte
    • Interrupts
    • Gängige Schnittstellen wie I2C, SPI, seriell usw.

Weitere Ressourcen

Falls Ihnen einer der oben genannten Punkte nicht vertraut ist oder Sie mehr über ein bestimmtes, in diesem Buch erwähntes Thema erfahren möchten, könnten einige dieser Ressourcen hilfreich für Sie sein.

ThemaRessourceBeschreibung
RustRust BookWenn Sie sich mit Rust noch nicht sicher fühlen, empfehlen wir Ihnen dringend, dieses Buch zu lesen.
Rust, EmbeddedDiscovery BookWenn Sie sich noch nie mit eingebetteter Programmierung beschäftigt haben, ist dieses Buch möglicherweise der bessere Einstieg
Rust, EmbeddedEmbedded Rust BookshelfHier finden Sie weitere Ressourcen, die von der Embedded Working Group von Rust bereitgestellt werden.
Rust, EmbeddedEmbedonomiconDie Feinheiten der Embedded-Programmierung mit Rust.
Rust, Embeddedembedded FAQHäufig gestellte Fragen zu Rust im Embedded-Umfeld.
Rust, EmbeddedComprehensive Rust 🦀: Bare MetalUnterrichtsmaterial für einen viertägigen Kurs zu Bare-Metal Rust development
InterruptsInterrupt-
Memory-mapped IO/PeripheralsMemory-mapped I/O-
SPI, UART, RS232, USB, I2C, TTLStack Exchange about SPI, UART, and other interfaces-

Übersetzungen

Dieses Buch wurde von großzügigen Freiwilligen übersetzt. Wenn Ihre Übersetzung hier aufgeführt werden soll, erstellen Sie bitte einen Pull Request, um sie hinzuzufügen.

Wie Sie dieses Buch nutzen

Dieses Buch ist im Allgemeinen so konzipiert, dass es von Anfang bis Ende gelesen wird. Spätere Kapitel bauen auf den Konzepten früherer Kapitel auf; dabei werden bestimmte Themen in den früheren Kapiteln möglicherweise noch nicht bis ins Detail behandelt, sondern erst in einem späteren Kapitel erneut aufgegriffen.

Für den Großteil der in diesem Buch enthaltenen Beispiele wird das Entwicklungsboard STM32F3DISCOVERY von STMicroelectronics verwendet. Dieses Board basiert auf der ARM-Cortex-M-Architektur. Zwar ist die grundlegende Funktionalität bei den meisten auf dieser Architektur basierenden CPUs identisch, doch unterscheiden sich Peripheriekomponenten und andere Implementierungsdetails der Mikrocontroller je nach Hersteller – und oft sogar zwischen verschiedenen Mikrocontroller-Familien desselben Herstellers.

Aus diesem Grund empfehlen wir die Anschaffung des Entwicklungsboards STM32F3DISCOVERY, um die Beispiele in diesem Buch praktisch nachvollziehen zu können.

Beiträge zu diesem Buch

Die Arbeit an diesem Buch wird in diesem Repository koordiniert und hauptsächlich vom Ressourcen-Team vorangetrieben.

Wenn Sie Schwierigkeiten haben, den Anweisungen in diesem Buch zu folgen, oder wenn ein Abschnitt des Buches nicht klar genug oder schwer verständlich ist, handelt es sich um einen Fehler; dieser sollte im Problem-Verfolgungswerkzeug des Buches gemeldet werden.

Pull Requests, die Tippfehler korrigieren oder neue Inhalte hinzufügen, sind herzlich willkommen!

Wiederverwendung dieses Materials

Dieses Buch wird unter den folgenden Lizenzen vertrieben:

  • Die in diesem Buch enthaltenen Codebeispiele und eigenständigen Cargo-Projekte stehen unter den Bedingungen sowohl der MIT-Lizenz als auch der Apache-Lizenz v2.0.
  • Die in diesem Buch enthaltenen Texte, Bilder und Diagramme stehen unter der Lizenz Creative Commons CC-BY-SA v4.0.

Kurz gesagt: Wenn Sie unsere Texte oder Bilder für Ihre Arbeit verwenden möchten, müssen Sie:

  • Geben Sie die entsprechende Quellenangabe an (d. h. erwähnen Sie dieses Buch auf Ihrer Folie und geben Sie einen Link zur entsprechenden Seite an).
  • Geben Sie einen Link zur CC-BY-SA v4.0-Lizenz an.
  • Geben Sie an, ob Sie das Material in irgendeiner Weise verändert haben, und stellen Sie Änderungen an unserem Material unter derselben Lizenz zur Verfügung.

Teilen Sie uns bitte auch mit, ob Sie dieses Buch nützlich finden!