danke für die Antwort.
Mein Makefile hab ich geändert
![grin :-D](https://forum.lowlevel.eu/Smileys/classic/grin.gif)
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?