Forum: Compiler & IDEs Welche Toolchain fuer linuxprogramme auf AT91ARM9263


von Kasei (Gast)


Lesenswert?

Hi

Ich sitze vo einem AT91ARM9263-EK board, auf ihm laeuft das 
vorkompilierte Armstrong Linux von http://linux4sam.org
Netzwerk geht, dh. ich kann mit ssh/scp Daten uebertragen.
Habe schon unter Linux einen eigenen Kernel (2.6.24) mit einem 
selbstkompilierten Crosscompilier (gnuarm 4.1 gcc Version) erstellt und 
verwende diesen anstatt des Kernels von linux4sam.org .

Leider bekomme ich es nicht hin, ein einfaches helloworld.c so zu 
compilieren das es, nachdem ich es auf das Board geladen habe, 
funktioniert.

Ich habe es mit dem selbstcompilierten Crosscompilier versucht, der mir 
anstandslos den kernel erstellt hat. Beim Ausfuehren auf dem Board 
bekomm ich ne Fehlermeldung (Syntaxerror)
Dann habe ich gelesen, das man dafuer wohl einen Crosscompiler mit glibc 
oder uClibc braucht. also habe ich mir von http://nihilisme.ca/arm/ den 
letzten Crosscompiler( ) gezogen, entpackt, compiliert, hochgeladen, und 
beim ausfuehren mit "sh ./hello " wieder die Fehlermeldung:' 1: Syntax 
error: word unexpected (expecting ")") '.
Habe auch schon www.scratchbox.org versucht. ( mit der Toolchain: 
http://www.scratchbox.org/download/files/sbox-releases/apophis/deb/scratchbox-toolchain-arm-gcc4.1-uclibc20061004_1.0.4_i386.deb 
)
Auch das damit compilierte helloworld.c geht nicht :(, der selbe Fehler 
wie oben.

Die Frage ist, womit kann ich ein helloworld.c (und so weiter) 
kompilieren so das es auf dem board laeuft. Fehlen auf dem Board/in der 
Armstrongversion die noetigen Bibliotheken? oder verwende ich einfach 
nur den falschen Compiler?
Oder muss ich mich von dem Armstrong Linux verabschieden und ein anderes 
verwenden(welches? selbsterstelltes?)

Hoffe ihr koennt mir helfen. Beantworte auch gerne weitere Fragen wenn 
das hilft.

Grus Kasei

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

SyntaxError kommt mir komisch vor. Wenn es an fehlerhaften Bibliotheken 
liegt kommen da andere Fehlermeldungen. Ich vermute da eher ein Problem 
mit der Shell auf deinem System.

Matthias

von OHGOTT (Gast)


Lesenswert?

Schau dir mal die Parameter von der Shell an ! Da stimmt was nicht 
!!!!elfelf1111!!!

Am besten mal "man sh" oder "man bash" !

Das war mein erstes Post, sorry:

Was bist du denn fuer ein Noob ? Quatscht hier was von Kernel 
durchleiern und stellst solche Fragen. Wie wäre es mal, dein rein 
verbales Wissen in die Praxis umzusetzen ?

Schau dir deine Befehlszeile an und du weisst was du falsch machst.

von Kasei (Gast)


Lesenswert?

@OHGOTT: Ja in manchen belangen bin ich ein noob schulterzuck dennoch 
ist dein tonfall nicht sehr freundlich.

das sh ./hello nicht geht ist mir inzwischen auch klar.

aber auch ein ./hello geht ebenfalls nicht, sonst haette ich das mit sh 
garnicht versucht.

jenachdem welchen crosscompiler ich verwende bekomme ich 
unterschiedliche fehlermeldungen.

am weitesten kam ich mit der scratchbox compilierten variante:
nachdem ich uclibc.so.0 und libc.so.0 aufs board kopiert habe kommt nun 
der fehler:

./sb-arm-hello: can't handle reloc type 0x13

ldd unter scratchbox lieferte:
> ldd sb-arm-hello
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
libc.so.0 => /lib/libc.so.0 (0x00000000)
/lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)

> file sb-arm-hello
sb-arm-hello: ELF 32-bit LSB executable, ARM, version 1 (ARM), 
dynamically linked (used shared libs), not stripped

liegt das daran das scratchbox die uclib benutzt?

von OHGOOT (Gast)


Lesenswert?

Dann kopier ein Binary von der Box auf deinen Rechner und lass da mal 
ldd drauf laufen ? Wie sind überhaupt deine Compiler-Switches ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.