mikrocontroller.net

Forum: Compiler & IDEs Hello World mit uclinux auf Olimex LPC-E2468 Board


Autor: Stefan B. (forscher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Bisher konnte ich einige Erfahrungen mit dem LPC2368 sammeln. Dabei 
verwendete ich den arm-elf-gcc unter (Suse)Linux aber ohne 
Betriebssystem auf dem Zielboard. Das lief auch ganz gut. Jetzt möchte 
ich auf uclinux weitermachen aber da hänge ich ein wenig bei den ersten 
Schritten.
Ich verwende das Olimex Board LPC-E2468 im Auslieferzustand. Toolchain, 
Kernel, ROMfs selbst bauen, hebe ich mir für später auf :-).
Ich kann das Board seriell über USB mit Kermit ansprechen und bekomme 
auch die Shell und kann das Netzwerk konfigurieren. Mit dem vorhandenen 
wget kann ich auch erstmal Dateien von meinem Entwicklungsrechner auf 
z.B. /var im Zielsystem kopieren (und mit dem httpd auch zurück).
Jetzt möchte ich einfache Applikation (Hello World) auf dem Zielsystem 
laufen lassen. Die übersetzte ich mit dem auf der CD mitgelieferten 
Compiler.

arm-linux-uclibc-gcc -I/usr/cross/include -o test main.c

Das geht ohne Fehler, mit dem Tool elf2flt wandle ich test dann in das 
Flat-Format um. (habe ich im Netz aus cdk-nios-uclinux-tools geholt).
Wenn ich jetzt diese Anwendung per wget auf das Zielsystem hole, 
ausführbar mache und starte tut sich einfach nichts. Der Prompt kehrt 
zurück und ps zeigt auch keinen Prozess an. Habe auch schon eine 
Endlos-Schleife (Blink-LED) versucht, auch dort kehrt der Prompt sofort 
zurück.

Habe ich hier irgendwas übersehen, oder ist die Toolchain falsch ?
Da bin ich jetzt schon eine zeitlang am Schwimmen...

Danke für Hinweise !
Stefan

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie führst du es denn genau aus? Hast du daran gedacht, daß du unter 
Linux - sofern du im Verzeichnis des Executables bist - './test' 
schreiben mußt?

Autor: Stefan B. (forscher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf,
ja, daran habe ich schon gedacht. Sonst kommt "Bad command or file 
name".
Irgendwie habe ich die Vermutung, dass es an der Toolchain liegt. Es ist 
doch richtig, dass arm-elf-gcc für Boards ohne OS (also typisches 
kleines uC-System) benutzt wird und arm-linux-uclib-gcc für Projekte, 
die nachher unter uclinux laufen sollen, oder ?
Stefan

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ja, daran habe ich schon gedacht. Sonst kommt "Bad command or
> file name".

Das erstaunt mich etwas, denn eigentlich gibt's unter Linux bzw. in der 
Shell normalerweise ein eingebautes Tool mit Namen 'test'. Und das hat 
beim Aufruf ohne Argumente eben genau den Effekt, daß es gar nichts tut.

> Irgendwie habe ich die Vermutung, dass es an der Toolchain liegt. Es
> ist doch richtig, dass arm-elf-gcc für Boards ohne OS (also typisches
> kleines uC-System) benutzt wird und arm-linux-uclib-gcc für Projekte,
> die nachher unter uclinux laufen sollen, oder ?

Klingt jetzt nicht so falsch. Wenn das Executable nicht passen würde, 
müßte eigentlich auch eine Fehlermeldung kommen.

Autor: Stefan B. (forscher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Kommando test gibt es offensichtlich auf dem uclinux nicht. Du hast 
recht, das wäre ganz schön heimtückisch. Aber es gab bei mir natürlich 
auch schon verschiedene Versionen mit Namen test2 .. etc.

Vielleicht gibt es ja jemand, der ein ausführbares hello world für einem 
arm7tdmi und uclinux besitzt und könnte mir das schicken. Dann wäre 
zumindest klar, dass es nicht am Zielsystem liegt.
Stefan

Autor: Emanuel S. (emanuel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein kleines Hallo Welt Programm als flat-binary bei mir geht es 
unter uclinux und dem gleichen Board.
einfach mit './hallo-welt' aufrufen.

Autor: maik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich habe das gleiche Problem.
Gibt es eine Lösung?

Maik

Autor: Emanuel S. (emanuel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die Lösung steht zwei Einträge drüber zum Download bereit ...

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Emanuel S. schrieb:
> Ja, die Lösung steht zwei Einträge drüber zum Download bereit ...

Du bist vielleicht ein Komiker!
Es geht doch nicht um ein "Hello World" Programm, sondern um das 
Erstellen eines eigenen Programms.

Autor: Emanuel S. (emanuel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn eine richtige Frage auf mein Programm gestellt worden wäre hätte 
ich eher geantwortet, aber es wurde ja erst nach einem Testprogramm 
gefragt ...

Nun gut also dann:

Am einfachsten ist es wenn man zwei Toolchains verwendet:
Für den Kernel und das Romfs die ARM-Linux-Toolchain
Für nachträglich erstellte Programme im Userspace die arm-elf-toolchain

mit der arm-elf-toolchain compilieren mit:
arm-elf-gcc -static -elf2flt -o testprog testprog.c

danach sollte es gehen ... so ist auch des hello-world programm oben 
erstellt.

http://linuxwiki.hto.fh-deggendorf.de/index.php/Em...

Autor: Emanuel S. (emanuel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch den link zur Toolchain:

www.uclinux.org/pub/uClinux/arm-elf-tools/arm-elf-tools-20030314.sh

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.