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.
| Thema | Ressource | Beschreibung |
|---|---|---|
| Rust | Rust Book | Wenn Sie sich mit Rust noch nicht sicher fühlen, empfehlen wir Ihnen dringend, dieses Buch zu lesen. |
| Rust, Embedded | Discovery Book | Wenn Sie sich noch nie mit eingebetteter Programmierung beschäftigt haben, ist dieses Buch möglicherweise der bessere Einstieg |
| Rust, Embedded | Embedded Rust Bookshelf | Hier finden Sie weitere Ressourcen, die von der Embedded Working Group von Rust bereitgestellt werden. |
| Rust, Embedded | Embedonomicon | Die Feinheiten der Embedded-Programmierung mit Rust. |
| Rust, Embedded | embedded FAQ | Häufig gestellte Fragen zu Rust im Embedded-Umfeld. |
| Rust, Embedded | Comprehensive Rust 🦀: Bare Metal | Unterrichtsmaterial für einen viertägigen Kurs zu Bare-Metal Rust development |
| Interrupts | Interrupt | - |
| Memory-mapped IO/Peripherals | Memory-mapped I/O | - |
| SPI, UART, RS232, USB, I2C, TTL | Stack 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!