Beruflich Dokumente
Kultur Dokumente
WiSe21/22
Stephan Schulze
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 1 / 59
Gliederung
3 Der STM32F303RET6
4 Assembler
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 2 / 59
Abschnitt 1
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 3 / 59
Unterabschnitt 1
Vorzeichenlose Zahlen
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 4 / 59
Zahlensysteme und Codes
(Vorzeichenlose) Binärzahlen
Vorzeichenlos (= unsigned)
10112 = 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = 1110
Beispiel 1: Beispiel 2:
0 0 1 1 (3) 1 0 1 1 (11)
+ 1 0 1 0 (10) + 0 1 1 1 (7)
1 1 1 1 1
1 1 0 1 (13) 1 0 0 1 0 (2)
→ Carry-Bit
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 6 / 59
Zahlensysteme und Codes
Subtraktion von vorzeichenlosen Binärzahlen
Beispiel 1: Beispiel 2:
1 1 0 1 (13) 0 0 1 0 (2)
- 0 0 1 1 (-3) - 0 1 1 1 (-7)
1 1 1 1 1
1 0 1 0 (10) 1 1 0 1 1 (11)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 7 / 59
Zahlensysteme und Codes
Addition und Subtraktion von vorzeichenlosen Binärzahlen: Zahlenkreis
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 8 / 59
Unterabschnitt 2
Vorzeichenbehaftete Zahlen
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 9 / 59
Zahlensysteme und Codes
Vorzeichenbehaftete Binärzahlen: Zweierkomplement (I)
Vorzeichenbehaftet (= signed)
höchstwertiges Bit = 0 → positive Zahl
höchstwertiges bit = 1 → negative Zahl
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 10 / 59
Zahlensysteme und Codes
Vorzeichenbehaftete Binärzahlen: Zweierkomplement (II)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 12 / 59
Zahlensysteme und Codes
Rechnen mit vorzeichenbehafteten Binärzahlen
Beispiel 1: Beispiel 2:
0 0 1 1 (3) 1 0 1 0 (-6)
+ 1 0 1 1 (+(-5)) + 1 1 0 1 (+(-3)
1 1 1
1 1 1 0 (-2) 1 0 1 1 1 (7)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 13 / 59
Unterabschnitt 3
Gleitkommazahlen
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 14 / 59
Zahlensysteme und Codes
Gleitkommadarstellung (I)
0, 002 = 0, 2 · 10−2
entspricht betragsmäßig
Typ Größe Exponent Mantisse Dezimalstellen größte Zahl
single
(float)
32 bits 8 bits 23 bits 7-8 3, 403 · 1038
double 64 bits 11 bits 52 bits 15-16 1, 798 · 10308
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 15 / 59
Zahlensysteme und Codes
Gleitkommadarstellung (II)
Formeln:
Z = (−1)V · M · 2E e = E + Ueberschuss
Darstellung im Speicher:
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 16 / 59
Unterabschnitt 4
Darstellungsformen
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 17 / 59
Zahlensysteme und Codes
Die Zahlen 0 – 15 in verschiedenen Zahlensystemen
Bit7 Bit 0
Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1
(MSB) (LSB)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 19 / 59
Zahlensysteme und Codes
ASCII-Code
Mit Hilfe des ASCII-Codes lässt sich mit einem Byte ein Buchstabe,
eine Dezimalziffer, ein Sonderzeichen oder ein Steuercode (z. B.
Carriage Return“) darstellen:
”
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 20 / 59
Unterabschnitt 5
Übungsaufgaben
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 21 / 59
Zahlensysteme und Codes
Übungsaufgaben (I)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 22 / 59
Zahlensysteme und Codes
Übungsaufgaben (II)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 23 / 59
Abschnitt 2
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 24 / 59
Aufbau eines Rechnersystems
Prinzipieller Aufbau eines Rechnersystems
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 25 / 59
Aufbau eines Rechnersystems
Speicher (I)
RAM vs ROM
? ?
• Schreiben und Lesen • Schreiben eingeschränkt
• flüchtig
• nicht flüchtig
(→ Versorgungsspannung)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 26 / 59
Aufbau eines Rechnersystems
Speicher (II)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 27 / 59
Aufbau eines Rechnersystems
Prinzipieller Aufbau einer CPU
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 28 / 59
Aufbau eines Rechnersystems
Geschichte der (Mikro-)Prozessoren
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 29 / 59
Aufbau eines Rechnersystems
Klassifikation von MP und Verwandte
Rechnerarchitektur
Von-Neumann
Harvard
Anwendung
Allzweckprozessoren (PCs)
Mikrocontroller
Signalprozessoren
...
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 30 / 59
Aufbau eines Rechnersystems
Übungsaufgaben
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 31 / 59
Abschnitt 3
Der STM32F303RET6
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 32 / 59
Der STM32F303RET6
STM Allgemein
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 33 / 59
Der STM32F303RET6
STM STM32F303RET6 Features
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 35 / 59
Der STM32F303RET6
Pinout und Beschaltung
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 36 / 59
Der STM32F303RET6
AF (I)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 37 / 59
Der STM32F303RET6
AF (II)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 38 / 59
Der STM32F303RET6
AF (III)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 39 / 59
Der STM32F303RET6
(Core) Register
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 40 / 59
Der STM32F303RET6
Memory Map
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 41 / 59
Der STM32F303RET6
NUCLEO-F303RE
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 42 / 59
Der STM32F303RET6
Pinbelegung NUCLEO-F303RE
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 43 / 59
Abschnitt 4
Assembler
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 44 / 59
Unterabschnitt 1
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 45 / 59
Assembler
Condition Code Flags im Program Status Register (PSR)
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 46 / 59
Assembler
Befehle für Datentransport (Auswahl)
Befehl Operation
MOV Rd, #<imm16> Rd ← imm16
MOV Rd, <op2> Rd ← <op2>
LDR Rd, =<imm32> * Rd ← imm32
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 47 / 59
Assembler
Arithmetische/logische Operationen
Befehl Operation
ADDS Rd, Rn, <op2> Rd ← Rn + op2
SUBS Rd, Rn, <op2> Rd ← Rn - op2
ANDS Rd, Rn, <op2> Rd ← Rn & op2
BICS Rd, Rn, <op2> Rd ← Rn & ∼op2
ORRS Rd, Rn, <op2> Rd ← Rn | op2
EORS Rd, Rn, <op2> Rd ← Rnˆop2
LSLS Rd, Rn, <Rs|#imm5> Rd ← Rn Rs|#imm5
LSRS Rd, Rn, <Rs|#imm5> Rd ← Rn Rs|#imm5
S → Update PSR!
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 48 / 59
Assembler
Sprünge (Auszug)
Befehl Operation
B <label> Springe
BEQ <label> Springe, falls Z = 1 (equal)
BNE <label> Springe, falls Z = 0 (not equal)
BCS <label> Springe, falls C = 1 (carry set/higher or same)
BCC <label> Springe, falls C = 0 (carry clear/lower)
BHI <label> Springe, falls C = 1 und Z = 0 (higher)
BLS <label> Springe, falls C = 0 oder Z = 1 (less than or same)
Speichere die Adresse des nächsten Befehls im LR
BL<label>
und springe
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 49 / 59
Assembler
Speicherzugriff
Befehl Operation
LDR Rd, [Rn] Lade 32-Bit-Zahl aus Speicher
LDRH Rd, [Rn] Lade 16-Bit-Zahl aus Speicher
LDRB Rd, [Rn] Lade 8-Bit-Zahl aus Speicher
STR Rd, [Rn] Speichere 32-Bit-Zahl im Speicher
STRH Rd, [Rn] Speichere 16-Bit-Zahl im Speicher
STRB Rd, [Rn] Speichere 8-Bit-Zahl im Speicher
PUSH <reglist> Schreibt <reglist> auf Stack
POP <reglist> Holt <reglist> vom Stack
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 50 / 59
Assembler
Words und Half-Words
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 51 / 59
Assembler
Manipulation von einzelnen Bits mit Masken
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 52 / 59
Unterabschnitt 2
Beispielprogramm
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 53 / 59
Assembler
Beispiel für ein Assembler-Programm: Blinklicht (I)
. syntax u n i f i e d
. cpu c o r t e x −m4
. section . text
. weak R e s e t H a n d l e r
. t y p e R e s e t H a n d l e r , %f u n c t i o n
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 54 / 59
Assembler
Beispiel für ein Assembler-Programm: Blinklicht (II)
Reset Handler :
l d r r0 , =RCC AHBENR
l d r r1 , [ r0 ]
o r r r1 , #0x00020000 // IOPAEN ( Takt P o r t A)
s t r r1 , [ r0 ]
l d r r0 , =GPIOA MODER
l d r r1 , [ r0 ]
o r r r1 , #0x00000400 // P i n A5 i s t Ausgang
s t r r1 , [ r0 ]
l d r r0 , =GPIOA ODR
mov r1 , #0
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 55 / 59
Assembler
Beispiel für ein Assembler-Programm: Blinklicht (III)
again :
s t r r1 , [ r 0 ]
mov r2 , #0x10000 // V e r z o e g e r u n g
m:
s u b s r2 , r2 , #1
bne m
e o r r1 , r1 , #0x0000020 // B i t 5 t o g g e l n
b again
. s e c t i o n . i s r v e c t o r , ” a”,% p r o g b i t s
. word e s t a c k
. word R e s e t H a n d l e r
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 56 / 59
Abschnitt 5
Anhang
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 57 / 59
Unterabschnitt 1
Quellen
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 58 / 59
Quellen I
Stephan Schulze (BHT Berlin / IAV GmbH) Termin 2 - MCT-2 12. Oktober 2021 59 / 59