Forum: Compiler & IDEs Hello World läuft nicht


von Gottfried H. (gottfried_h)


Lesenswert?

Ich versuche ein sehr simples Hello World auf meinem Grasshopper zum 
laufen zu bringen.
1
#include <stdlib.h>
2
#include <stdio.h>
3
4
int main() {
5
   printf("Hello World");
6
   return 0;
7
}

Ich hab die toolchain unter debian installiert, mit AVR32 Studio das 
Programm kompiliert und ins /tmp verschoben (HelloWorld.elf)
Wenn ich das Programm über telnet starte  hätte ich mir auf der Konsole 
ein Hello World erwartet. Leider krieg ich nur ein "killed".
Was mach ich falsch?

von Wiwi (Gast)


Lesenswert?

Bin grade etwas verwirrt, aber ein Mikrocontroller zeigt doch kein 
printf an?

Oder hast du irgendwas schönes drummherum gebastelt?
(Mit entsprechendem Quelltext)

von Martin (Gast)


Lesenswert?

Wenn Konsole = serielle Schnittstelle - dann müssen die entsprechenden 
Übertragungsparameter der UART eingestellt werden.

von Sauger (Gast)


Lesenswert?

Gottfried Hauer schrieb:
> (HelloWorld.elf)

sicher das dein HelloWorld.elf ein ausführbares Programm ist. Die Endung 
.elf deutet auf ein Objektfile hin das noch vom Linker bearbeitet werden 
möchte.

MfG

von Mark .. (mork)


Lesenswert?

Das Programm sieht korrekt aus und die Endung elf ist auch richtig. Fast 
alle Linux-Programme liegen im elf-Format vor.

Poste mal die genaue Kommandozeile, mit der der Compiler/Linker 
aufgerufen wurde.

MfG Mark

von Rolf Magnus (Gast)


Lesenswert?

Mark .. schrieb:
> Das Programm sieht korrekt aus und die Endung elf ist auch richtig. Fast
> alle Linux-Programme liegen im elf-Format vor.

Allerdings wird das Format nicht nur für fertig gelinkte Programme 
verwendet, aber bei diesen ist es eher unüblich, die Namen auf .elf 
enden zu lassen.

von Mark .. (mork)


Lesenswert?

Rolf Magnus schrieb:
> Allerdings wird das Format nicht nur für fertig gelinkte Programme
> verwendet, aber bei diesen ist es eher unüblich, die Namen auf .elf
> enden zu lassen.

Ja klar, normal haben die Programme gar keine Endung, nur gibt es einige 
IDEs wie z.B. Code::Blocks, bei denen .elf standardmäßig auch an das 
fertig gelinkte Binary drangehägt wird und manuell entfernt werden muss.

MfG Mark

von Unbeteiligter (Gast)


Lesenswert?

Benutzt du Linux auf dem Grasshopper oder ein Standalone "Hello World"?
Für beides (Linux / Standalone 'C') gibt es unterschiedliche Toolchains.
Für ein Standalone 'C' guckst du hier:
Beitrag "Re: AP7000 und usart"

von Gottfried H. (gottfried_h)


Lesenswert?

Ich verwende Linux am Grasshopper und habe die Toolchain mit apt-get von 
hier installiert.
http://www.atmel.no/avr32/ubuntu/jaunty binary/

Das Programm hab ich mit AVR32 Studio 2.5 geschrieben und ein C++ Linux 
Executable ausgewählt und kompiliert.

Ich bin gerade dabei mir eine Buildroot zu kompilieren. Hab ich einfach 
die falsche Toolchain erwischt? Weil im AVR Studio war überall als 
Compiler AVR32-linux-gcc... eingetragen und ich hab das auf avr-gcc 
ausgebessert, da ich diesen nicht auf dem Rechner gefunden habe.

Wenn ich das Programm jetzt mit der richtigen Toolchain kompiliert habe 
und das Hello World über die telnet-Console starte krieg ich dann eine 
Ausgabe auf der Console?

von ... (Gast)


Lesenswert?

Gottfried Hauer schrieb:
> Ich bin gerade dabei mir eine Buildroot zu kompilieren. Hab ich einfach
> die falsche Toolchain erwischt? Weil im AVR Studio war überall als
> Compiler AVR32-linux-gcc... eingetragen und ich hab das auf avr-gcc
> ausgebessert, da ich diesen nicht auf dem Rechner gefunden habe.

Das war dann wohl der falsche Kompiler. Das stand nicht umsonst 
'AVR32-linux-gcc'!
'avr-gcc' ist der für die 8bit AVRs, das erklärt auch die Endung '.elf'.
Dein AVR32 kann damit mit Sicherheit nichts anfangen, es sei denn, Du 
hast einen passenden Emulator auf Deinem Grasshopper.
Du brauchst definitiv 'AVR32-linux-gcc'

Gottfried Hauer schrieb:
> Wenn ich das Programm jetzt mit der richtigen Toolchain kompiliert habe
> und das Hello World über die telnet-Console starte krieg ich dann eine
> Ausgabe auf der Console?

So sollte es dann sein.

von Gottfried H. (gottfried_h)


Lesenswert?

Vielen Dank für eure Hilfe. Ich hab mir jetzt die richtige Toolchain 
gebaut und das Programm kompiliert und siehe da es funktioniert.

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.