Skip to content

Commit 6b62fc4

Browse files
committed
Integrate an explanation of bit and word addressing schemas
1 parent 813a0a5 commit 6b62fc4

1 file changed

Lines changed: 24 additions & 4 deletions

File tree

13_AVR_CPU.md

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
author: Sebastian Zug & André Dietrich & Fabian Bär
44
email: sebastian.zug@informatik.tu-freiberg.de & andre.dietrich@informatik.tu-freiberg.de & fabian.baer@student.tu-freiberg.de
5-
version: 0.0.4
5+
version: 0.1.4
66
language: de
77
narrator: Deutsch Female
88
@@ -803,12 +803,32 @@ Offenbar handelt es sich um einen `Jump` Befehl. Dieser besteht aus 2 Worten, wi
803803
```
804804
---- --- ---
805805
94 0c = 1001.0100.0000.1100
806-
00 72 = 0000.0000.1110.0100
806+
00 72 = 0000.0000.0111.0010
807807
808-
Folgeadresse 00.0000.0000.0000.0111.0010 = 0xe4
808+
Folgeadresse 00.0000.0000.0000.0111.0010 = 0x72
809809
```
810810

811-
Zusammengesetzt ergibt sich eine Folgeadresse $0xe4$. Im Programmspeicher steht auf den ersten 8 Byte `jmp 0xe4`
811+
Nun greift aber eine Besonderheit des AVR Controllers. Dieser adressiert seine Speicherinhalte Wortweise. Der GCC erzeugt aber byteweise adressierten Code. Im Objektfile finden sie die byteweisen Adressierungen in der ersten Spalte. Um also die wortbasierten Adressen "umzurechnen" müssen Sie mit 2 multipliziert werden. In unserem Fall folgt daraus `0xe4`.
812+
813+
```asm
814+
00000000 <__vectors>:
815+
0: 0c 94 72 00 jmp 0xe4 ; 0xe4 <__ctors_end>
816+
4: 0c 94 7e 00 jmp 0xfc ; 0xfc <__bad_interrupt>
817+
8: 0c 94 7e 00 jmp 0xfc ; 0xfc <__bad_interrupt>
818+
c: 0c 94 7e 00 jmp 0xfc ; 0xfc <__bad_interrupt>
819+
...
820+
821+
000000e4 <__ctors_end>:
822+
e4: 11 24 eor r1, r1
823+
e6: 1f be out 0x3f, r1 ; 63
824+
...
825+
826+
000000fc <__bad_interrupt>:
827+
fc: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
828+
829+
```
830+
831+
Im Programmspeicher steht auf den ersten 8 Byte `jmp 0xe4`
812832

813833
## Vorbereitung der praktischen Aufgaben
814834

0 commit comments

Comments
 (0)