Programmierumgebung unter Linux erstellen und testen: Unterschied zwischen den Versionen
| (20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== Einrichtung der Entwicklungsumgebung == | == 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: <syntaxhighlight lang="shell" inline>ls</syntaxhighlight> | |||
==== cd ==== | |||
Wechselt das Arbeitsverzeichnis. | |||
: Beispiele: | |||
{| class="wikitable" | |||
|- | |||
| <syntaxhighlight lang="shell" inline>cd ~</syntaxhighlight> || Wechselt in das Home-Verzeichnis. | |||
|- | |||
| <syntaxhighlight lang="shell" inline>cd Kapitel1</syntaxhighlight> || Wechselt in das „Kapitel1“-Verzeichnis, wenn es im aktuellen Verzeichnis existiert. | |||
|- | |||
| <syntaxhighlight lang="shell" inline>cd ..</syntaxhighlight> || Wechselt in das übergeordnete Verzeichnis. | |||
|- | |||
| <syntaxhighlight lang="shell" inline>cd /</syntaxhighlight> || Wechselt in das Hauptverzeichnis. | |||
|} | |||
==== mkdir ==== | |||
„Make Directory“ erstellt ein neues Verzeichnis im aktuellen Arbeitsverzeichnis. | |||
: Beispiel: <syntaxhighlight lang="shell" inline>mkdir MeinVerzeichnis</syntaxhighlight> | |||
:: Erstellt ein neues Verzeichnis namens „MeinVerzeichnis“. | |||
==== pwd ==== | |||
Zeigt das aktuelle Arbeitsverzeichnis als gesamter Pfad an. | |||
: Beispiel: <syntaxhighlight lang="shell" inline>pwd</syntaxhighlight> | |||
== Installation der notwendigen Tools wie Assembler, Compiler und Debugger == | == 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: | |||
<syntaxhighlight lang="shell"> | |||
sudo apt update | |||
sudo apt upgrade | |||
sudo apt install gcc gdb make | |||
</syntaxhighlight> | |||
=== Installation des GNU Assembler (as) und Linker (ld) === | |||
Diese Tools sind normalerweise Teil des binutils-Pakets: | |||
<syntaxhighlight lang="shell"> | |||
sudo apt install binutils | |||
</syntaxhighlight> | |||
=== Überprüfung der Installation === | |||
Überprüfen Sie, ob die Tools korrekt installiert wurden, indem Sie ihre Versionen anzeigen: | |||
<syntaxhighlight lang="shell"> | |||
gcc --version | |||
as --version | |||
ld --version | |||
gdb --version | |||
</syntaxhighlight> | |||
== Erste Schritte mit einem einfachen "Hello, World!"-Programm in Assembler == | == 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: | |||
<syntaxhighlight lang="asm"> | |||
.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 | |||
</syntaxhighlight> | |||
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 == | == 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. | |||
<syntaxhighlight lang="shell"> | |||
gcc -o hello hello.S -nostartfiles -lc | |||
</syntaxhighlight> | |||
Um nun das Programm auszuführen wird folgendes geschrieben: | |||
<syntaxhighlight lang="shell"> | |||
./hello | |||
</syntaxhighlight> | |||
Falls alles ordnungsgemäß funktioniert, sollten Sie die Ausgabe „Hello, World!“ im Terminal sehen. | |||
Aktuelle Version vom 3. April 2025, 07:57 Uhr
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.