habe bis jetzt avr controller immer mit assembler programmiert, will jetzt aber aufgrund eines schulprojektes aus c/c++ umschwenken.. nun bitte keine diskusion ob dies sinnvoll ist, mein Lehrer hat mir den auftrag gegeben und ich ich kann daran nichts ändern:D bis jetzt habe ich ja die programme im avr studio geschrieben, assembliert und auf den microcontroller übertragen. Jetzt arbeite ich mich grad durch die c anleitung dieser seite und lese etwas von makefiles...kann mir nun jemand detailliert aber doch wie für einen idioten beschreiben was diese makefiles sind und was sie tun? Dankeschön:)
Das sind Kochanleitungen für dem Compiler was er machen soll und in welcher Reihenfolge. Das macht mittlerweile das AVR Studio von alleine, sodass Du dich darum vorerst nicht kümmern brauchst. Mach einfach ein C Projekt mit dem Wizzard auf und dnann macht der auch den Makefile. Axel
http://www.gidf.de/ ;) Makefiles sind Beschreibungsdateien für das Programm "make". Damit kann man Compiler, Linker und andere Tools (Avrdude, ...) so aufrufen, dass Abhängigkeiten berücksichtigt werden (zB. .c -> .o -> exe -> srec -> flashtool). Makefiles sind insb. für Mausschubser am Anfang etwas gewöhnungsbedürftig, aber irgendwann kann man nicht mehr ohne...
C Programme bestehen in der Regel aus vielen Quelltextdateien. Der C Compiler compiliert jede einzeln. Wenn Dein Programm auf zehn *.c Dateien besteht, musst Du den Compiler zehn mal aufrufen. Als Ergebnis erhälst du für jede *.c Datei eine Objektdatei *.o, die den erzeugten Binärcode enthält. Der Linker fügt die Objekt-Dateien (und ggf. externe Libraries) zu einem ausführbaren Programm (z.B. eine *.exe Datei) zusammen. Bei Mikrocontrollern erzeugt der Linker eine *.hex Datei für den Programmieradapter. Das Programm make hat nun die Aufgabe, den Compilier- und Link-Vorgang zu automatisieren. Wenn Du make benutzt, brauchst Du nicht jede *.c Datei manuell einzeln zu compilieren. Das könnte man auch mit einer Batch Datei machen, aber die laufen nicht unter Linux. Außerdem bringt Make den Vorteil mit, bei Programmänderungen nur die veränderten Dateien zu compilieren. Das "Makefile" ist eine Datei, die exakt so heissen muss. Im Makefile steht drin, welche Quelltextdateien zum Programm gehören. Durch den Einsatz von Make reduziert sich der Compilier- und Link-Vorgang zu einem simplen "make" Kommando. Das war jetzt etwas vereinfacht, sollte aber trotzdem helfen, denn Sinn von Make zu verstehen. Die Details entnimmst Du am Besten der Original Doku von GNU Make (http://www.gnu.org/software/make/manual/make.html). Aber schau Dir erstmal ein Tutorial an. Eine Beispieldatei für AVR Projekte findest Du in meinem Buch http://stefanfrings.de/mikrocontroller_buch/index.html Band 2.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.