Teil 22: Debugging, Logging und Tests
Lernziel: Firmware systematisch prüfen.
Voraussetzungen: Der Rust-PC-Grundlagenkurs bzw. Grundkenntnisse in Rust; außerdem die vorangegangenen Pico-Lektionen. Zielboard: Pico 2 / Pico 2 W (ARM); Hinweise für RP2040 in der Kursübersicht.
Worum geht es?
Bei Mikrocontrollern entstehen Fehler durch Code, Verdrahtung, Spannungen oder nicht passende Boardkonfiguration. Prüfe immer zunächst Versorgung, Masse und Pinbelegung. Nutze cargo check, serielles Logging oder SWD; ausgelagerte reine Rechenfunktionen lassen sich sogar auf dem PC mit cargo test testen.
Schritt für Schritt
// Diese Funktion kann unabhängig vom Board getestet werden:
fn celsius_zu_fahrenheit(c: f32) -> f32 {
c * 1.8 + 32.0
}
#[test]
fn prueft_umrechnung() {
assert!((celsius_zu_fahrenheit(0.0) - 32.0).abs() < 0.001);
}
Einordnung: Tests für hardwarefreie Funktionen bleiben als separates Host-Crate besonders einfach.
Hintergrund und häufige Fehler
- Board prüfen: Pico/Pico W (RP2040) und Pico 2/Pico 2 W (RP2350) brauchen unterschiedliche Compilerziele und Boardkonfigurationen.
- Hardware zuerst: Vor dem Flashen Pinbelegung, gemeinsame Masse und 3,3-V-Pegel prüfen.
- Versionsstand: Übernehme die passenden Embassy-Beispiele und Abhängigkeiten aus demselben Repository-Stand; APIs ändern sich zwischen Releases.
- Schrittweise testen: Erst ein kleines funktionsfähiges Beispiel, danach jeweils genau eine Änderung vornehmen.
Selbst ausprobieren
Erstelle einen Test für 100 °C und liste fünf Schritte zur Fehlersuche bei einer dunklen LED auf.
Musterlösung anzeigen
100 °C ergibt 212 °F. Prüfen: Stromversorgung, GND, LED-Polung, Vorwiderstand, Pin und richtigen Firmware-Build.
Dokumentation für deine Versuche
Notiere verwendetes Board, Verdrahtung, Git-Commit oder Bibliotheksversion, Build-Befehl, Ergebnis und aufgetretene Fehlermeldungen. Halte dazu ein Foto oder einen Screenshot fest, der später in den Website-Beitrag übernommen werden kann.
Weiterführende Informationen
- Embassy – offizielles Repository und RP-Beispiele
- Embassy-Dokumentation
- RP-HAL mit RP2040-/RP235x-Hinweisen
