PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erzeugen einer .Hex-Datei aus mehreren C-Quelltexten !!



casa74
01.06.2005, 15:27
Hallo Zusammen,

wenn ein C-Programm für einen microcontroller aus mehreren Quelltexten besteht ,
wie bekommen ich dann mittels Avr-Studio oder Winavr , diese zu einer .hex-Datei assembliert ?


Für eure Hilfe wäre ich euch wirklich sehr dankbar !!

MFG !

Casa74

PicNick
01.06.2005, 16:08
Ich mach das so, daß ich mit dem Make-file-Tool alle Sourcen eintrage, die fürgt er dann ganz elektrisch zusammen. (wish84.exe)

casa74
01.06.2005, 17:08
Vielen Dank erstmal für deine schnelle Antwort !

Habe jetzt alle Sourcen im Make-file eingetragen, nur wie bekommen ich das ganze jetzt assembliert zu einer Hexfile ?
Kannst du mir vielleicht noch kurz beschreiben wie das unter AVR-Studio oder Winavr funktioniert ??

Sorry will net nerven, aber ich bin noch Anfänger und habe es bei den Tutorials irgendwie nicht geblickt !!

Gruß!

Casa74

PicNick
01.06.2005, 19:07
Also ohne Anspruch auf allgemeingültigkeit:
Ich hab, wie gesagt, die sourcen da eingetragen

und dann sag ichg in der Kommand-Line

c:\irgendwo\make -f makefile.mak <RET>

und tschüss

er übersetzt alles, linkt und macht eine Hexfile für das Pony (z.B)

casa74
08.06.2005, 19:28
Hallo Picnick

Habe es nach deiner Methode versucht und bin schon ein Stück weiter gekommen !

Zum Test habe ich das c-programm "prell" aus dem Tutorial von
Christian Schifferle verwendet !

Ich packe den ganzen Kram in einen Ordner( Bibliotheken,makefile u.s.w)
rufe dann unter der Command-line das Makefiel , wie von dir angegeben, auf und er arbeitet das Ding auch erst vielversprechend durch !
Doch zum Schluß gibts dann doch ein paar Fehlermeldungen:


http://www.casadebanjo.de/makefile2.jpg

Eine Hexfile erstellt er mir dann nicht , ich finde zumindest keine !
Im Makefile-Tool habe ich lediglich den Controller typ geändert(bei mir ein Atmega169) und auch die Angaben unter TRG entsprechend geändert!
Tja , und wie bereits erwähnt habe ich das c-Beispiel "prell" aus dem Tutorial übernommen !
Trotzdem will das Ding nicht funktionieren !
Hat vielleicht jemand von euch eine Idee woran es noch liegen könnte?
Muss ich im Makefile-Tool vielleicht noch mehr Einstellungen/Änderungen vornehmen ?
Möchte endlich mal mein erstes Hexfile erstellen ! :mrgreen:


Gruß und Danke !!

Casa74

bluebrother
13.06.2005, 18:41
wenn du genau auf die Fehlermeldung guckst siehst du es:

undefined reference to 'outp'

und das ganze während dem Linken.

Es ist so: wenn du mehrere Quelldateien hast werden die einzeln kompiliert und anschließend gelinkt. Deswegen musst du auch Funktionen, die du in foo.c benutzt in foo.c deklarieren (z.b. durch ein entsprechendes Header-File). Definieren kannst du das dann woanderst, also z.b. in bar.c Und genau da klemmts bei dir: der Linker will "outp" auflösen, findet das aber nicht. "outp" ist eine Funktion die schon ne ganze Weile als veraltet gekennzeichnet ist und wenn ich es richtig im Kopf habe beim letzten Release von WinAVR komplett entfallen ist -- schreib deinen Code einfahc entsprechend um.

izaseba
13.06.2005, 20:33
Hallo,
vielleicht noch ein link dazu, was bluebrother geschrieben hat
http://wwwuser.gwdg.de/~kboehm/ebook/26_kap20_w6.html#872486

Gruß Sebastian