Mit der Heimcomputerrevolution der frühen 80er Jahre sahen Menschen, die frühe Mikrocontroller programmierten, in den Computern sofort ihr neues Lieblingswerkzeug. Die Computer arbeiteten mit den gleichen Spannungen und hatten in der Regel viele "GPIOs" zur Verfügung, beispielsweise in Form des Parallelports beim IBM PC und des User Ports beim Commodore 64. Da die Mikrocontroller und ihre zugehörigen Peripheriegeräte alle mit Standard-TTL-5-Volt-Logik arbeiteten, war die Schnittstelle zu Computern ein Kinderspiel, und man konnte schnell damit beginnen, eigene benutzerdefinierte Firmware zu erstellen (zugegeben, die Hardware war damals nicht billig).

Dies war großartig, bis Mitte bis Ende der 90er Jahre, als PCs leistungsfähiger wurden, Mikrocontroller ihre EEPROMs in Flash-Speicher integrierten und neue Programmierschnittstellen, die sich über einen Parallelport leicht bit-bangen ließen, florierten. Sie konnten Plattformen von Intel 8051-Derivaten (z. B. der Atmel AT89S8252 mit seinem onboard Flash-Speicher) bis hin zu den Lieblingen der späten 90er und frühen 2000er Jahre, der PIC-Mikrocontroller-Serie, programmieren - alles ohne spezielle Spannungen, ohne ausgefallene Ausrüstung (ja, man konnte den Parallelport direkt an den Chip anschließen) und ohne ultraviolette EPROM-Löschgeräte (obwohl diese Spaß machten!).
 
20230208124454_at89s8252-board.png
Eine allgemeine AT89S8252-Mikrocontroller-Platine, die direkt vom Parallel-Port des PCs programmiert werden konnte. 
Nicht nur die Hardware war trivial zu schnittstellen, sondern auch die PC-Betriebssysteme der Zeit, von DOS bis hin zum frühen Windows 98, konnten direkt auf die Hardware auf Befehl des Benutzers zugreifen, ohne dass ein paranoider virtueller Sicherheitsmittelsmann im Weg stand. Mit QBASIC oder DEBUG konnten Sie die Bits am Druckerport ein- und ausschalten. Sie konnten sogar LEDs direkt an die Portpins anschließen und Ihre eigenen Lauflichter vom Typ Knight Rider programmieren.

Dann kamen die kurzen etwas dunkleren Zeiten.
 
Zuerst wurden die Betriebssysteme sicherheitsbewusster. Das bedeutete, dass Sie nicht einfach sagen konnten: "Hey Computer, schalte alle Bits am Parallelport ein" oder "sende schnell diesen Byte an den seriellen UART" von der Eingabeaufforderung aus. Ab späteren Versionen von Windows 98 über XP bis hin in die Zukunft würde Sie der Computer wahrscheinlich fragen, wer Sie sind und warum Sie seine inneren Bits manipulieren - es sei denn, Sie wollten ausgefallen werden und anspruchsvollere Windows-Programmierung lernen und Treiber schreiben und... ugh.
 
Ich erwähne nicht Linux, das nicht viele Menschen als ihren Hauptdesktop-Computer verwendeten.

Außerdem war das Betriebssystem nur der Software-Verderber; auch die Hardware begann im Weg zu stehen. USB kam auf und einfache "bare metal" (d.h. nahe an der Mikroprozessor-Hardware) serielle und parallele Anschlüsse begannen zu verschwinden. Und im Vergleich zu den Freiheitstagen des Bit-Banging seriellen und parallelen Anschlusses war USB albtraumhaft komplex. Jetzt erforderte die Programmierung eines einfachen 8-Pin PIC-Geräts teure Hardware und eine Entwicklungsumgebung wie Microchips MPLAB und ICD 2, die über USB mit dem PC verbunden werden konnten, aber einen speziellen Treiber benötigten und mit einer CD-ROM geliefert wurden... Ich habe immer noch einen dieser Programmer, aber er ruft keine schönen Erinnerungen hervor.
 
20230208125422_image.png
Eine von Mikrochips (vielen) Lösungen zum Programmieren von PIC-Chips. Quelle: Mikrochip.

Dann, ab etwa 2007, begannen die Menschen, durch den Start des ersten Arduinos, durchschnittliche Hersteller wieder ernst zu nehmen. Die ersten Raspberry Pis folgten 2012. Plötzlich, nach diesem schrecklichen Fehler in der Maker-Matrix, konnte man sein Entwicklungsboard schnell und einfach an seinen PC anschließen, schnellen Code schreiben, um etwas auszuprobieren, und hatte wieder direkten Zugang zur physischen Berechnung, um LEDs zu blinken, Summer zu summen und Servos zu rotieren, wie es einem gefällt.

Diese beiden Giganten auf dem Maker-Entwicklungsboard kamen aus unterschiedlichen Blickwinkeln: Der Arduino hatte einen einfachen Mikrocontroller im Kern und konnte Dinge billig und einfach erledigen. Am anderen Ende des Spektrums war der Raspberry Pi: Ein vollwertiger Computer mit Massenspeicher und einem Betriebssystem, wie PCs früher, aber mit Rückkehr zu den wunderbaren GPIOs.
 
Zwischen ihnen gab es eine gewaltige Kluft. Die Leute würden darüber debattieren, welche besser war, der Raspberry Pi oder der Arduino. Anhänger des RPi würden sagen, dass der Arduino zu einfach sei. Arduino-Fans würden sagen, dass der Pi zu komplex sei. Tatsächlich könnten beide wahr sein, weil die Boards verschiedene Nischen bedienten. Beide Plattformen erweiterten ihr Angebot in das Niemandsland: Arduino machte größere, schnellere und komplexere Boards, während Raspberry Pi billigere, abgespeckte Versionen des Pi, wie die Pi Zero-Serie, herstellte. Die Plattformen sind jetzt nahe genug beieinander, dass ein Funke die Lücke überbrücken könnte.

Hier kommt der Raspberry Pi Pico ins Spiel. Mit seinem RP2040-Mikrocontroller repräsentiert er einen Paradigmenwechsel für Raspberry Pi. Es ist nichts wie seine größeren Geschwister, da es keine eingebaute Massenspeichermöglichkeit, kein Linux-Betriebssystem und die beliebteste Methode der Programmierung ist die Verwendung von Python.
 
200711-014-94-original-17829-raspberry-pi-pico-01jpg.png
Raspberry Pi Pico
Der RP2040-Mikrocontroller repräsentiert jedoch immer noch die gute alte Mikrocontroller-Ethik, und ja, Sie können ihn direkt in seiner nativen Assemblersprache programmieren. Für die Mutigen, wenn Sie dazu neigen, verfügt er über ein 636-seitiges Datenblatt. Ja, der Chip hat die Größe von etwas anderem, das auch klein ist, und dennoch hat er ein Telefonbuch (erinnern Sie sich daran?), um alle seine Funktionen zu erklären.
20230208130405_rp2040-page-31.png
Wenn Sie ein Fan von tiefgründiger Programmierung sind, dann ist das Lesen der 636-seitigen RP2040-Datenblatt.
 
Deshalb bin ich froh, auf Will Thomas 'YouTube-Videos gestoßen zu sein, in denen die Programmierung des RP2040 auf Bare-Metal-Ebene in Assemblersprache erklärt wird. Beginnen Sie auf der YouTube-Seite unten, wo er in dem ersten Video mit einem Einführungsgespräch erklärt, warum Sie etwas so Verrücktes wie das Programmieren in Assemblersprache in den 2020er Jahren tun möchten.
 
Er macht einen besseren Fall als ich es tun würde.
 
 

Ich freue mich auf eine tiefere Tauchfahrt durch den Rest seiner Videos und empfehle Ihnen, seinen Kanal zu überprüfen, wenn Sie auch an dieser Art von Sache interessiert sind!


Übersetzung: Reda Alouane