Programmierumgebung unter Linux erstellen und testen

Aus C und Assembler mit Raspberry

Einrichtung der Entwicklungsumgebung

Vorbereitung des Raspberry Pi

Um den Raspberry Pi als Entwicklungsplattform für ARM64-Bit Assembler zu nutzen, verwenden wir das Standard-Linux-System „Raspberry Pi OS (64-bit)“, das uns von der Raspberry Pi Foundation zur Verfügung gestellt wird. Dies kann über den „Raspberry Pi Imager“ auf eine SD-Karte gespielt oder direkt von der offiziellen Website heruntergeladen werden.

Erste Schritte:

1. Installation des Raspberry Pi OS:

• Laden Sie den „Raspberry Pi Imager“ auf Ihren Computer herunter und installieren Sie ihn.
• Starten Sie den „Raspberry Pi Imager“ und wählen Sie das 64-bit-Raspberry Pi OS.
• Schreiben Sie das Image auf eine SD-Karte.

2. Erster Start und Konfiguration:

• Legen Sie die fertig beschriebene SD-Karte in Ihren Raspberry Pi ein und starten Sie diesen.
• Beim ersten Start wird das Betriebssystem möglicherweise einige zusätzliche Pakete installieren und konfigurieren. Gegebenenfalls werden Updates heruntergeladen und installiert, was dringend empfohlen wird.
• Stellen Sie sicher, dass der Raspberry Pi mit dem Internet verbunden ist, bis alle notwendigen Werkzeuge installiert sind.

Arbeiten im Terminal

Wir werden viel im Terminal arbeiten, um Assemblerprogramme zu schreiben, zu kompilieren und auszuführen. Wenn du noch mehr wichtige Befehle kennen lernen möchtest dann schau bei Die wichtigsten Linux-Terminal-Befehle nach. Hier sind einige grundlegende Terminalbefehle, die Sie beherrschen sollten:

  • ls

Zeigt eine Liste der Dateien und Verzeichnisse im aktuellen Verzeichnis.

Beispiel: ls
  • cd

Wechselt das Arbeitsverzeichnis.

Beispiele:
cd ~ Wechselt in das Home-Verzeichnis.
cd Kapitel1 Wechselt in das „Kapitel1“-Verzeichnis, wenn es im aktuellen Verzeichnis existiert.
cd .. Wechselt in das übergeordnete Verzeichnis.
cd / Wechselt in das Hauptverzeichnis.
  • mkdir

„Make Directory“ erstellt ein neues Verzeichnis im aktuellen Arbeitsverzeichnis.

Beispiel: mkdir MeinVerzeichnis
Erstellt ein neues Verzeichnis namens „MeinVerzeichnis“.
  • pwd

Zeigt das aktuelle Arbeitsverzeichnis als gesamter Pfad an.

Beispiel: pwd

Installation der notwendigen Tools wie Assembler, Compiler und Debugger

Um Assemblerprogramme zu schreiben, zu kompilieren und zu debuggen, benötigen wir bestimmte Werkzeuge. Diese können aus dem Terminal heraus installiert werden:

Installation des GCC-Compilers und der notwendigen Tools:

Öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus:

sudo apt update
sudo apt upgrade
sudo apt install gcc gdb make

Installation des GNU Assembler (as) und Linker (ld):

Diese Tools sind normalerweise Teil des binutils-Pakets:

sudo apt install binutils

Überprüfung der Installation:

Überprüfen Sie, ob die Tools korrekt installiert wurden, indem Sie ihre Versionen anzeigen:

gcc --version
as --version
ld --version
gdb --version

Erste Schritte mit einem einfachen "Hello, World!"-Programm in Assembler

Als erstes Assemblerprogramm schreiben wir eine einfache „Hello World“-Anwendung: Dazu verwenden wir einen Texteditor, wie zum Beispiel "Kate". Erstelle dort folgendes Programm:

.section .data
hello: .asciz "Hello, World!\n"

.section .text
.global _start

_start:
    ldr x0, =hello        // Load the address of the string into x0
    bl  printf             // Call printf function
    mov x0, 0             // Return 0 from main
    mov x8, 93            // syscall number for exit
    svc 0                 // Make the system call to exit

Speichere die Datei in dein Home-Verzeichnis und/oder erstelle dort ein Verzeichnis und gebe der Datei den Namen "hello.S". Beachte hier das "S", welches groß geschrieben ist.

Testen der Umgebung durch Kompilieren und Ausführen von Assemblerprogrammen

Im Terminal kann der Code wie folgt kompiliert werden, wenn du im richtigen Verzeichnis bist, in dem du die Datei abgelegt hattest. Wie das Verzeichnis zu wechseln ist, habe ich bereits zuvor beschrieben.

gcc -o hello hello.S -nostartfiles -lc

Um nun das Programm auszuführen wird folgendes geschrieben:

./hello

Falls alles ordnungsgemäß funktioniert, sollten Sie die Ausgabe „Hello, World!“ im Terminal sehen.