PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : avr-gcc-Compiler auch für "Allerwelts-Programme" e



Stefahn
26.08.2005, 18:23
Hi Leute!

habe mir vor Kurzem den Asuro-Roboter-Bausatz gekauft.
Erste Testprogramme sind schon erfolgreich gelaufen!

Bevor ich daran gehe komplexere Programme zu entwerfen muss ich
meine C-Kenntnisse erst wieder auffrischen. Dazu nun meine Frage:

kann ich mit dem avr-gcc-Compiler auch herkömmliche (also nicht
speziell für AVR-Chips geschriebene) Programme kompilieren ?
und wenn ja: wie krieg ich dann in Windows (!!!) ne ausführbare Datei
aus meinem Quelltext ??? "avr-gcc hello.c -o hello.exe" geht zwar
(keine Fehlermeldung), wenn ich die hello.exe dann aber ausführen will
krieg ich die Meldung dass es keine zulässige Win-32-Anwendung sei!

wenns mit dem avr-gcc nicht gehen sollte, welchen Compiler würdet ihr
mir dann empfehlen ?

Vielen Dank für Hilfe
Stefahn

SprinterSB
26.08.2005, 18:38
avr-gcc ist ein Cross-Compiler, d.h. er erzeugt unter WIndows oder Linux aus einer QUelldatei eine Datei im elf32-Format, die Informationen zum ausführbaren Programm enthält (zB Befehle, Daten, Debug-Info, Lade-Adressen, ...)
Wenn du ein C-Programm auf dem Host ausführen willst, dann brauchst du einen anderen Compiler, etwa einen 'normalen' gcc.
Programme werden aber auf dem Host nicht wirklich ausführbar sein, denn dein Host hat eine ganz andere Hardware (Register, Ports, etc) und Sachen wie printf() oder fopen() sind auf einem AVR zunächst mal nicht sinnvoll und AFAIK auch nicht in der libc drinne.
Allerdings kannst du die für AVR übersetzten Programme auf dem Host simulieren, zB via simulavr. Nach starten von simulavr geht man mit dem avr-gdb da ran und kann durchsteppen, aber eine zugrundeliegende Hardware hast du immer nocht nicht, die dir zB externe Interrupts auslösen könnte.

Andun
27.08.2005, 19:00
Als Ergänzung noch:

Ich glaube er will ja auch gar nicht wissen, wie er die Programme für den µC auf dem PC ausführen kann, sondern nur ob er mit dem Compiler auch .exe erstellen kann. :D

Naja, also die Antwort steht ja oben:

Nein, du brauchst einen "normalen" gcc.

Andun

Volly42
28.08.2005, 08:04
Unter Windows und dem Gnu-Compiler verwendest Du am besten:

http://www.bloodshed.net/devcpp.html

Das Teil läßt sich einfach installieren und für C-Programme zu "üben" ist es sicher ein gute Alternative.