Assembling Pi ist ein Tutorial, das Schritt für Schritt in die Welt der Assembler-Programmierung auf dem Raspberry Pi einführt. Es richtet sich an alle, die ein tieferes Verständnis für die Interaktion von Hard- und Software auf fundamentaler Ebene entwickeln möchten – auch ohne Vorkenntnisse in der Assembler-Programmierung.
Der Titel spielt auf das bekannte Tutorial Baking Pi, an, das eine Einführung in die Grafikprogrammierung auf dem Raspberry Pi 1 in Assembler bietet. Während sich Baking Pi primär auf grafische Anwendungen konzentriert, legt Assembling Pi den Fokus auf die Grundlagen der Assembler-Programmierung und vermittelt detailliert die zugrundeliegenden Konzepte.
Die ersten Kapitel bieten eine fundierte Einführung in die ARM-Assembler-Programmierung und beleuchten die wichtigsten Merkmale der ARM-Prozessoren. Zur Unterstützung dient der CPUlator-Emulator, mit dem Sie die theoretischen Grundlagen praktisch umsetzen können. Darauf aufbauend wird im späteren Verlauf die Hardware des Raspberry Pi 2B mithilfe von QEMU emuliert, wobei wesentliche Input/Output-Funktionen, sowie grundlegende Schritte der System- und Grafikprogrammierung vermittelt werden. Dieses praxisnahe Tutorial kombiniert theoretisches Wissen mit gezielten Übungsaufgaben, um das Erlernte direkt anzuwenden und nachhaltig zu festigen.
Es wird empfohlen, die Aufgaben zunächst selbstständig zu lösen. Sollten dabei Probleme auftreten, kann der bereitgestellte Quellcode zur Unterstützung herangezogen werden. Versuchen Sie, den Lösungsansatz nachzuvollziehen, und wenden Sie Ihr Verständnis anschließend erneut auf die jeweilige Aufgabenstellung an.
Verwenden Sie Tools wie den CPULator oder QEMU, um die Auswirkungen bestimmter Befehle auf das System zu erkunden. Da dieses Tutorial nicht alle Aspekte der ARMv7 Architektur abdeckt, ist es sinnvoll, eigenständig zusätzliche Informationen zu recherchieren.
Unter dem Reiter Ressourcen finden Sie technische und theoretische Hilfsmittel, darunter Cheatsheets und nützliche Links. Insbesondere wird empfohlen, vor Beginn des Tutorials das Cheatsheet ARM- Instruction Set Quick Reference Card herunterzuladen. Es bietet eine umfassende Übersicht über Instruktionen, die im Tutorial nur teilweise thematisiert werden.
Der bereitgestellte Quellcode in den Lösungen zielt auf eine verständliche Darstellung ab, ohne den Anspruch auf Perfektion oder maximale Optimierung. Nutzen Sie die Gelegenheit, aktiv Notizen zu machen, bei Bedarf zusätzliche Informationen zu suchen und eigene Ideen auszuprobieren. Herausforderungen dienen hier als wertvolle Lerngelegenheiten und helfen, das Verständnis zu vertiefen.
Dieses Tutorial entstand als Projektarbeit der Studenten Selina Fidancan und Yannik Osterholzer der Technischen Hochschule Nürnberg.
Für weiterführende Diskussionen zu den Inhalten dieses Tutorials sowie für Fragen, Kritik oder Anmerkungen steht ein Discord-Server zur Verfügung. Dort besteht die Möglichkeit, sich mit anderen Interessierten auszutauschen, Fragen zu stellen und an Diskussionen rund um Low-Level-Programmierung und Computerarchitektur teilzunehmen. Der Kanal richtet sich an alle, die tiefer in die Materie einsteigen und von der Community lernen oder ihr Wissen teilen möchten. Wir freuen uns auf eine aktive Teilnahme und spannende Gespräche!
Ressourcen | Hauptmenü | Tutorial starten |