danke für die Antwort.
Mein Makefile hab ich geändert
anstatt short int etwas anderes zu versuchen, hab ich schon versucht.
Tatsächlich macht es jetzt aber einen Unterschied.
Bei short oder unsigned short und unsigned int bekomme ich folgende Ausgabe:
A
H00 1
11 2
22 3
33 4
44 5
U00 1
11 2
22 3
33 4
44 5
Mit int, long, long long oder unsigned long und unsigned long long folgendes:
A
H00He1
e11el2
l22ll3
l33lo4
o44o 5
55 W6
W66 7
U00U 1
11 2
22 3
33 4
44 5Wenn man das i < 5 aus der While-Schleife entfernt gibt es in allen Fällen nur den ersten Buchstaben aus, und verlässt dann die Schleife...
ich werde es mal mit dem Debugger versuchen ._.
Das mit dem .global versteh ich; was ich nciht verstehe, ist die Verwendung davon bzw. wieso dies nciht so funktiniert wie ich das erwarten würde...
wenn ich in start.S folgendes schreibe:
.global _test
_test:
...
bekomme ich beim Linken folgenden Fehler:
aarch64-linux-gnu-ld: start.o: in function `_test':
(.text+0x3c): multiple definition of `_test'; start.o:(.text+0x3c): first defined here
demnach hab ich es ohne _ versucht.. sowohl:
.global test
_test:
als auch
.global _test
test:
scheint der linker auch erstmal so hinzunehmen.
Möchte ich nun in C darauf zugreifen:
extern void _test();
...
_test();
bekomme ich nur:
aarch64-linux-gnu-ld: init.o: in function `init':
init.c:(.text+0x194): undefined reference to `_test'
das gleiche auch wenn ich es als test(); ohne _ deklariere.
kannst du mir erklären wie ich das .global konkret einsetzen kann?
Bei meinem vorherigen Projekt ging es mit:
.global _name
_name:
...
Was ist denn die korrekte Syntax für .global?