Ein Programmierbeispiel für eine Minimalanwendung

Hier ein kurzes Beispiel, wie eine Minimalanwendung für das STM32F3 Discovery Board aussieht. Die folgenden Crates werden benötigt:

Stellenmarkt
  1. IT Systemadministrator (m/w/d)
    Königsteiner Services GmbH, Stuttgart
  2. Inhouse SAP Abteilungsleiter & SAP S / 4HANA Programm Manager (m/w/x)
    über duerenhoff GmbH, Weil am Rhein
Detailsuche

  • panic-halt, das eine einfache Panikfunktion enthält,
  • cortex-m enthält die Low-Level Funktionen für den Cortex-M Prozessor,
  • cortex-m-rt enthält den Startup-Code und ein minimales Laufzeitsystem für Cortex-M Prozessoren,
  • f3 enthält die Board-Support Funktionen für das F3 Board.

Die Abhängigkeiten werden in der Cargo.toml-Datei beschrieben:

  1. # Cargo.toml
  2. [dependencies]
  3. panic-halt = "0.2.0"
  4. cortex-m = "0.6.3"
  5. cortex-m-rt = "0.6.3"
  6. [dependencies.f3]
  7. features = ["rt"]
  8. version = "0.6.1"

Golem Akademie
  1. Hands-on C# Programmierung: virtueller Zwei-Tage-Workshop
    4.–5. November 2021, virtuell
  2. Einführung in die Programmierung mit Rust: virtueller Fünf-Halbtage-Workshop
    21.–25. März 2022, Virtuell
Weitere IT-Trainings

Targetabhängige Compiler- und Linker-Einstellungen lassen sich in der Cargo-Konfigurationsdatei (.cargo/config) ablegen:

  1. [target.thumbv7em-none-eabihf]
  2. runner = "gdb -q -x openocd.gdb"
  3. rustflags = [
  4. "-C", "link-arg=-Tlink.x",
  5. ]
  6. [build] target = "thumbv7em-none-eabihf"

Die einfachste Anwendung besteht aus einer Endlosschleife. Zuvor müssen wir aber noch dem Compiler sagen, dass die Rust-Standard-Bibliothek std nicht verfügbar ist und die Einstiegsfunktion mit dem Attribut "entry" versehen:

  1. #![no_main]
  2. #![no_std]
  3. extern crate panic_halt;
  4. pub use cortex_m_rt::entry;
  5. pub use f3::hal::prelude;
  6. #[entry]
  7.  
  8. fn main()-> ! {
  9. loop {
  10. }
  11. }

Das oben erwähnte Tutorial beschreibt, wie man diese Minimalanwendung schrittweise erweitert, um GPIOs und andere Peripheriebausteine anzusprechen.

Fazit

Entwickler von Embedded Systems sollten kritisch überprüfen, ob die von ihnen gewählte Programmiersprache noch angemessen ist oder ob es sich lohnt, einen Umstieg auf Rust oder Ada zu beginnen. Ich persönlich habe zwar immer gerne in C programmiert, halte die Programmiersprache aber nicht mehr für zeitgemäß. C++ enthält natürlich viele Verbesserungen, aber da C++ eine Erweiterung von C ist, wurden auch viele Schwachstellen übernommen.

Programmierung sicherer Systeme mit Rust: Eine Einführung

Laufzeitfehler in eingebetteten Steuerungssystemen zu finden, ist ein harter Job, denn in der Regel sind die Debug-Möglichkeiten schlechter als bei Programmen, die auf dem Desktop oder auf dem Server laufen, und Fehler haben besonders kritische Folgen.

Warum also nicht einmal eine neue Programmiersprache ausprobieren, anstatt tagelang nach Fehlern zu suchen?

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Mit Rust eingebettete Systeme entwickeln
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5


Aktuell auf der Startseite von Golem.de
Kickstarter
Die Pibox ist ein Mini-NAS mit Raspberry Pi

Auf Basis des Raspberry Pi CM 4 entsteht die Pibox. Mittels Carrier-Platinen können daran zwei 2,5-Zoll-Laufwerke angeschlossen werden.

Kickstarter: Die Pibox ist ein Mini-NAS mit Raspberry Pi
Artikel
  1. Neuer Firmenname: Aus Facebook wird Meta
    Neuer Firmenname
    Aus Facebook wird Meta

    Facebook-Chef Mark Zuckerberg hat den Namen der neuen Dachgesellschaft seiner Dienste genannt. Dieser lehnt sich stark an das geplante Metaversum an.

  2. S9U fürs Homeoffice: Samsung stellt 49-Zoll-Ultrawide-Monitor mit KVM-Switch vor
    S9U fürs Homeoffice
    Samsung stellt 49-Zoll-Ultrawide-Monitor mit KVM-Switch vor

    Der S9U ist Samsungs neuer 32:9-Bildschirm. Er integriert USB-C mit 90 Watt Power Delivery und einen KVM-Switch. Das Panel schafft 120 Hz.

  3. XTurismo: Fliegendes Jetski aus Japan für knapp 600.000 Euro
    XTurismo
    Fliegendes Jetski aus Japan für knapp 600.000 Euro

    Wo auch immer man sie fliegen dürfen wird, Multikopter für den Personentransport sind im Kommen. Dieses Flugobjekt stammt aus Japan.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • WD Black SN750 1TB 89,90€ • Acer 27" FHD 165Hz 191,59€ • PS5 Digital + 2. Dualsense + 100€-Amazon-Gutschein mit o2-Vertrag sofort lieferbar • Kingston 1TB PCIe 69,90€ • GTA Trilogy Definitive 59,99€ • Alternate-Deals (u. a. Apacer 960GB SATA 82,90€) [Werbung]
    •  /