This commit is contained in:
David Schirrmeister 2024-06-02 16:59:37 +02:00
parent 4207158b07
commit 26b786300a
14 changed files with 154 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -43,6 +43,9 @@
<toc-element topic="MU7Rechner.md"/> <toc-element topic="MU7Rechner.md"/>
</toc-element> </toc-element>
<toc-element topic="Klassifikation.md"/> <toc-element topic="Klassifikation.md"/>
<toc-element topic="arm.md">
<toc-element topic="arm_toolchain.md"/>
</toc-element>
</toc-element> </toc-element>
<toc-element toc-title="EWI"> <toc-element toc-title="EWI">
<toc-element topic="1_WirtschaftsinformatikImDigitalenZeitalter.md"/> <toc-element topic="1_WirtschaftsinformatikImDigitalenZeitalter.md"/>
@ -56,4 +59,5 @@
<toc-element topic="6_ProcessMiningManifest.md"/> <toc-element topic="6_ProcessMiningManifest.md"/>
</toc-element> </toc-element>
</toc-element> </toc-element>
</instance-profile> </instance-profile>

102
Writerside/topics/RA/arm.md Normal file
View File

@ -0,0 +1,102 @@
# ARM
## ARM Prozessoren
### Architektur Revisionen
- Unterschiedliche Features
- bspw. unterschiedliche Multiplikationsbefehle, Adressierungsarten, ...
- jeweils gleiches Befehssatzdesign für jede Revision
- aktuell: v7 / v8
### Profile: Konkrete Prozessor-Implementierungen
- Application Profil ['A']:
- High Performance
- bspw. Mobile, Enterprise
- Real Time Profil ['M']:
- Embedded Anwendungen
- bspw. Automotive, Industriesteuerungen
- Microcontroller Profil ['M']:
- Mikrocontroller für große Bandbreite an Anforderungen
- Anzahl Gatter, Kosten, Realtime, Performance
- Aktuell in 2017:
- v7 (32Bit):
- Cortex A7, Cortex M4, Cortex M0+
- v8 (64Bit):
- Cortex A53, Cortex A57
## Bedeutung des Befehlssatzes (ISA)
- Befehlssatz = Instruction Set Architektur
- ISA Level
- ist das Interface zwischen Soft- und Hardware
- definiert die Sprache, die von Soft- & Hardware verstanden werden muss
- ![image_291.png](image_291.png)
### ARM Instruction Sets
![image_292.png](image_292.png)
- ARM unterstützt derzeit 3 IS
- A64 instruction set
- eingeführt mit ARMv8-A, um 64 Bit zu unterstützen
- A32 instruction set ("ARM")
- 32 Bit Befehlsatz in pre-ARMv8-Architekturen
- T32 instruction set ("Thumb"/"Thumb2")
- komprimierter 16/32 Bit Befehlssatz (gemischt)
- in pre-ARMv8-Architekturen
## Coding Standards UAL und APCS
### Unified Assembler Language (UAL)
- Coding Standard, der von Compilern für ARM (32bit) und Thumb verstanden wird
- Macht Programme möglich, die mit verschiedenen Prozessoren kompatibel sind
### ARM Program Calling Standard (APCS)
- Regelt Aufruf von
- Unterprogrammen
- Verwendung von Registern
- ...
- Ermöglicht Verwendung von Objektbibliotheken, welche von anderen Compilern übersetzt wurden
## Architektonisches Erbe der ARM-Prozessoren
**Verwendete Merkmale**
- RISC
- Grundlegendes Design-Prinzip: Einfachheit
- Load/Store Architektur (Register-Register), von Neumann
- 32Bit oder 64Bit (1 Wort)
- 1Byte = 8Bit
- Byteweise Adressierung des Speichers
- Little-Endian und Big-Endian kompatibel
- Vorteil für Einsatzzweck als Standard CPU in Kommunikationsgeräten
- Standard: Little-Endian
- [3-Adressbefehle](Klassifikation.md#3-adress-befehle) (32Bit) oder Thumb
**Verworfene Merkmale**
- Registerfenster
- wird nur bei SPARC Prozessoren genutzt
- Delayed Branches
- der dem Branch folgende Befehl wird ausgeführt bevor der Sprung durchgeführt wurde
- Behandlung von Interrupts und Exceptions schwieriger
- Ausführung aller Befehle in einem Taktzyklus
- setzt [Harvard](MU6Rechner.md#harvard-architektur) voraus
- Kompensation durch verbesserte Adressierungsmodi
## Ein erstes ARM-Programm (GNU)
![image_293.png](image_293.png)
### Wie wird aus einem Programm Maschinencode?
![image_294.png](image_294.png)
- Codierungsvorgang immer gleich
- kann von Programm (_Assembler_) übernommen werden
- Kann weitere Erleichterungen ermöglichen
- Bezeichner Konstanten, Daten, Adressen
- Reservieren von Speicherbereichen für (Zwischen-)Ergebnisse
- Anlegen und Initialisieren von Daten und Datenstrukturen beim Programmstart hinzufügen
-
## [ARM Toolchain](arm_toolchain.md)

View File

@ -0,0 +1,48 @@
# ARM Toolchain
![image_296.png](image_296.png)
## Targets
### Entwicklung auf dem Device
- Native Toolchain
- Benötigt ein OS
### Cross Entwicklung
- Compiler auf dem PC übersetzt für Hardware für die Zielplattform
### Entwicklung im Emulator auf dem PC
- Compiler auf dem PC übersetzt für Hardware, ausgeführt im Simulator
- Wenn Hardware nicht verfügbar oder Entwicklung zeitaufwändig
- Insight, QEmu
### Bare Metal
- Für Mikroprozessor ohe BS
### Betriebssysteme
- Linux
- Embedded Windows
- Realtime OS
## Toolchain für das Praktikum
![image_297.png](image_297.png)
## GNU ARM Assembler
- ![image_298.png](image_298.png)
- rn = Registername
### Assembler-Direktiven
- können Übersetzungsvorgang steuern
- können Speicherbereiche für das Programm reservieren
- ![image_300.png](image_300.png)
- können Datenstrukturen für das Programm anlegen und initialisieren
- ![image_299.png](image_299.png)
### Pseudobefehle
- Befehle, die es in der Maschinensprache nicht gibt, aber häufig gebraucht werden
- Assembler übersetzt diese in eine geeignete Sequenz von "echten" Assemblerbefehlen
- Beispiel:
- ![image_301.png](image_301.png)
-