Aus Raspberry Pi Geek 10/2021

Pico-Programmierumgebung (Teil 1)

© John Holst, Fotolia.com

Toolbox für den Pico

Bernhard Bablok

Das Programmieren des Mikrocontrollers Pico erfordert mehrere, voneinander unabhängige Arbeitsschritte. Die Toolchain VSC fasst sie zusammen.

Ob Großrechner oder Kleinstcomputer: Eine CPU führt nur Befehle aus, die sie auch kennt. Auf der CPU-Ebene handelt es sich dabei um Maschinenbefehle, also letztlich eine für die meisten Menschen unlesbare Abfolge von Nullen und Einsen.

Von den allerersten Anfängen der Computerei einmal abgesehen, als die Experten den Maschinencode tatsächlich von Hand schreiben mussten – das macht heute niemand mehr. Programmierer schreiben Quellcode, den ein Compiler dann in den für die CPU lesbaren Maschinencode umwandelt.

Bei Mikrocontrollern (MCU, Micro Controller Unit) wie dem Pico kommt hinzu, dass der Quell- und Maschinencode auf einem Rechner entsteht, der das fertige Programm nicht ausführen kann. Es gilt also, das Binary erst auf das Ziel (Target) zu kopieren, was man im allgemeinen Sprachgebrauch auch flashen nennt. Viele MCUs benötigen dafür spezielle Adapter, beim Pico gestaltet sich die Sache dagegen sehr einfach.

Für den ganzen Prozess vom Quellcode bis zum lauffähigen Pico-Code brauchen Sie nichtsdestotrotz eine ganze Reihe von Programmen. Man spricht hier von einer Toolchain, also einer Werkzeugkette. Einzige Ausnahme: Sie programmieren in Python. Dann genügt ein beliebiger Editor (siehe Kasten “Python für den Pico”).

In unserem Workshop geht es aber um die Programmierung in C, das gegenüber Python immer dann punktet, wenn es um höchste Performance oder größtmögliche Kontrolle der Ressourcen geht.

Python für den Pico

Auf dem Pico startet immer nur ein Programm, etwa ein Python-Interpreter wie MicroPython oder CircuitPython. Letzterer ist etwas einfacher gestrickt, verfügt aber über mehr Hardwarebibliotheken und unterstützt mehr Plattformen. Der Vorteil von Python: Sie müssen den Interpreter nur einmal auf dem Pico installieren. Danach führt er nicht nur Python-Skripte aus, sondern emuliert auch eine kleine Festplatte. Dank dieser gestaltet sich das Kopieren neuer Skripte auf den Pico einfach, denn Sie müssen das Board dafür nicht mehr vom Strom trennen und mit dem Bootsel-Knopf hantieren. Den Python-Code erstellen Sie mit einem Editor Ihrer Wahl. Es gibt spezialisierte Varianten wie Thonny oder Mu, die den Pico direkt unterstützen und den Kopiervorgang vereinfachen. Außerdem zeigen sie die Ausgabe der seriellen Schnittstelle des Pico an.

Integrierte Entwicklung

Als Entwickler hantieren Sie üblicherweise nicht direkt mit vielen Programmen, sondern nutzen eine integrierte Entwicklungsumgebung wie die Arduino IDE, die inzwischen viele verschiedene Mikrocontroller unterstützt. In der Betaphase befindet sich aktuell die Version 2.x, diese soll später auch den Pico unterstützen.

Die Raspberry Pi Foundation entschied sich aber für einen anderen Ansatz. Die Grundlage für die Pico-Entwicklung soll der Editor Visual Studio Code [1] bilden, kurz auch VSC genannt.

VSC hat technisch nichts mit der bekannten Entwicklungsumgebung Visual Studio von Microsoft zu tun. VSC wurde von Anfang an komplett als Open Source unter Führung von Microsoft entwickelt und gilt aktuell als der Goldstandard für erweiterbare Editoren: ein Tool von Programmierern für Programmierer.

Das sehr schlanke VSC lädt Zusatzfunktionen über Erweiterungen (Plugins) mit wenigen Klicks nach. So expandiert der Editor zu einer kompletten Entwicklungsumgebung, die im Hintergrund Compiler, Make-Utilities und Flash-Programme einbindet. Als Arduino-IDE-Nutzer müssen Sie sich zwar etwas umgewöhnen, dafür bietet VSC deutlich mehr Funktionen.

Einfache Installation

Die Tabelle “Werkzeuge” fasst alle Bausteine der Toolchain zusammen. Aktuell finden sich nur Teile davon im normalen Raspbian-Repository, andere müssen Sie per Git holen und dann selbst kompilieren. Das klingt zwar sehr komplex, doch zum Glück gibt es ein Installationsskript [2], das die grundlegende Arbeit erledigt. Bei Erscheinen dieses Artikels müsste eine dann aktualisierte Version neben dem RasPi selbst auch andere Debian-basierte Linux-Varianten und sogar Apple unterstützen.

Werkzeug

Name

Quelle

Befehl

Anmerkung

Editor

VSCode

Repository

sudo apt-get -y install code

Zusätzlich diverse Plugins, unter anderem für CMake.

Header und Bibliotheken

Pico-SDK

Git

git clone https://github.com/raspberrypi/sdk.git

Cross-Compiler

GCC

Repository

sudo apt-get -y install gcc-arm-none-eabi

Make-Generator

CMake

Repository

sudo apt-get -y install cmake make

Debugger

Gdb

Repository

sudo apt-get -y install gdb-multiarch

Debug-Interface

OpenOCD

Git

git clone https://github.com/raspberrypi/openocd.git -b rp2040 --depth=1

Kopiertool

OpenOCD

Git

git clone https://github.com/raspberrypi/openocd.git -b rp2040 --depth=1

Kopiert Programme vom Pi4 zum Pico.

Bootloader

Elf2uf2

Teil des SDK.

Beispiele

diverse

Git

git clone https://github.com/raspberrypi/examples.git

Weitere Tools

Automake, Autoconf, Build-essential

Repository

sudo apt-get -y install Paket

Für den Bau der Tools.

Info-Tool

Picotool

Git

git clone -b master https://github.com/raspberrypi/picotool.git

Zeigt Infos zum aktuell installierten Programm auf dem Pico an.

Pico-Firmware

Picoprobe

Git

git clone https://github.com/raspberrypi/picoprobe.git

Wenn ein zweiter Pico als Programmierschnittstelle für Linux-, Windows- oder Apple-Rechner dient.

Mit den meisten der Programme kommen Sie später sowieso nicht mehr direkt in Berührung. Als Entwicklungsmaschine dient idealerweise ein RasPi 4; wer auf Linux, Apple oder Windows entwickelt, hat etwas mehr Arbeit. Ein gutes Einführungsdokument [3] hilft aber beim Setup.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 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