Aus Raspberry Pi Geek 03/2025

Mit Rust die GPIO des Raspberry Pi ansteuern (Seite 2)

Die Definition der Funktion main in Zeile 8 wirkt ein wenig kryptisch, für einen ersten Test soll uns das aber nicht stören. Beim Festlegen der Variablen für die LED tritt eine interessante Eigenschaft von Rust zutage: Die Definition einer Variablen leiten Sie mit dem Schlüsselwort let ein. Durch das zusätzliche mut (“mutable”) geben Sie an, dass sie sich verändern kann. Ansonsten sind Variablen in Rust per se erst einmal statisch – eine der vielen Eigenschaften der Sprache zugunsten der Codesicherheit.

Im Codeblock loop ab Zeile 12 stecken die Kommandos zum Ein- und Ausschalten der LED. Wundern Sie sich nicht über die invertierte Logik – in der Bastelkiste fand sich nur eine RGB-LED mit gemeinsamer Anode. Wie schon beim “Hello-World”-Beispiel startet der Befehl cargo run das Programm.

Binary

Zum Erlernen von Rust und für kurze Tests eignet sich das Interpreter-Kommando cargo run hervorragend. Wir haben uns jedoch für Rust entschieden, weil wir schnellen, kompilierten Code erzeugen wollen. Den erstellt das Kommando cargo build im Projektverzeichnis. Dabei irritiert, dass man auf den ersten Blick gar nicht sieht, dass ein ausführbares Programm generiert wurde. Der Grund dafür: Alle entsprechenden Files landen im neuen Unterverzeichnis target/.

In unserem Fall liegt das Programm in hello_world/target/debug/. Wenn Sie dorthin wechseln, können Sie das Programm mit ./blink starten. Der Compiler hat es mit zusätzlichen Informationen für das Debugging versehen. Wenn Sie einen echten Release-Build erzeugen möchten, führen Sie den Befehl cargo build --release aus. Der dadurch erzeugte Programmcode landet im Unterverzeichnis target/release/. Er fällt erheblich kleiner aus als der Debug-Build und läuft dementsprechend schneller.

Tipps und Tools

Einige allgemeine Hinweise erleichtern den Einstieg in Rust. Die Programmiersprache folgt gewissen Konventionen für die Schreibweisen der einzelnen Komponenten. Projektnamen müssen beispielsweise grundsätzlich mit einem Kleinbuchstaben beginnen und der Snake-Case- (Unterstriche statt Leerzeichen) oder der Kebab-Case-Konvention (Bindestriche statt Leerzeichen) genügen. Falls Sie wissen möchten, welche Schreibweisen es außerdem gibt, hilft Ihnen die Webseite von Pluralsight [3] weiter. Benennen Sie eine Komponente nicht nach der korrekten Konvention, wird Sie der Compiler unaufhörlich darauf hinweisen.

Eines der zentralen Tools in Rust ist der Paketmanager Cargo. Eine Übersicht der am häufigsten verwendeten Parameter und deren Funktionen fasst die Tabelle “Wichtige Parameter für Cargo” zusammen. Neben dem für die Projektverwaltung gedachten Cargo spielt das Tool Rustup eine wichtige Rolle. Dabei geht es eher darum, Rust selbst zu verwalten. Die Tabelle “Beispielparameter für Rustup” zeigt einige Beispiele dazu.

Kommando

Funktion

cargo run

Projekt ausführen

cargo build

Projekt bauen

cargo test

Test starten

cargo doc

Projektdokumentation erstellen

cargo add

dem Projekt Pakete hinzufügen

cargo publish

Projekt veröffentlichen

cargo --version

Version von Cargo ausgeben

cargo new Name

neues Projekt im Ordner Name anlegen

Kommando

Funktion

rustup check

überprüfen, ob es Updates gibt

rustup update

Installation auf den aktuellen Stand bringen

rustup target

Zielplattform einstellen

rustup show

aktive und installierte Toolchains anzeigen

rustup doc

Dokumentation zur aktuellen Toolchain öffnen

Falls Sie sich etwas intensiver mit Rust beschäftigen möchten, empfiehlt sich der Erwerb des Buchs “Rust: Das umfassende Handbuch” [4]. Zum Preis von 50 Euro bekommen Sie dafür ein deutschsprachiges, brandaktuelles Werk, das auf mehr als 1000 Seiten ausführlich die Grundkonzepte der Programmiersprache beschreibt. Allerdings sollten Sie bereits ein gutes Verständnis der Programmierung mit hardwarenahen Sprachen wie C/C++ mitbringen.

Fazit

Rust basiert auf zahlreichen interessanten Konzepten, die so in anderen Sprachen nicht existieren. Die hohen Sicherheitsanforderungen an den Quellcode sorgen für viele ungewohnte Herangehensweisen. Für Anfänger taugt Rust daher nicht. Wenn Sie sich damit auseinandersetzen möchten, sollten Sie im Idealfall bereits Erfahrung mit C/C++ haben.

Wir konnten im Rahmen dieses Artikels nur an der Oberfläche der Möglichkeiten von Rust kratzen. Das Erlernen der modernen Programmiersprache ist definitiv kein Projekt für einen verregneten Nachmittag. Das Vorhaben eignet sich eher, um über den Winter keine Langeweile aufkommen zu lassen. Wir wünschen Ihnen viel Spaß beim Einarbeiten in Rust. (csi)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben