Nein, das ist so nicht in Ordnung. Mit dem Kommando erstellst du eine ELF-Datei mit einer .hex-Endung. -o legt nur den Ausgabename der Datei fast, sonst nichts.Zitat von ikarus_177
make wird als Build-Tool verwendet. Es ist nicht notwendig, um C-Projekte zu erzeugen. Dennoch findest du zu fast jedem C-Projekt ein Makefile, weil es den Build-Prozess beschleunigen kann. Das trifft aber natürlich nur dann zu, wenn das Makefile korrekt ist.
make ist keine Programmiersprache; wenn man ein Makefiles als Programm ansieht, liegt man fix auf der Nase.
In großen Projekten sind oft viele verschiedene Aufgaben zu lösen, die mit make automatisiert werden können, etwa: Wenn Datei A gebraucht wird und eine Regel besteht, wie A aus einer Datei B erzeugt werden kann, dann erzeuge A neu falls B jünger ist als das alte A.
Shell-Skripte sind nicht so intelligent, sie machen immer mehr oder weniger stupide das gleiche, ohne Abhängigkeiten und Zeitstempel innerhalb eines Projektes zu berücksichtigen. sh-Skripte sind hier also idR ineffizienter, was aber bei einem kleinen Projekt keine Rolle spielt. Vor allem aber sind sh-Skripte (wenn sie nicht ausufern) besser nachvollziehbar als make, weil es im Gegensatz zu Makefiles eine Abfolge von Kommandos darstellt.
GCC selbst kann keine HEX-Dateien erstellen. Er mach die Ausgabe als Assembler-Datei und ruft darauf andere Programme auf. Was er genau macht, sieht du wenn du die Option -v mit angibst. Die Endausgabe ist wie gesagt ein ELF -- egal wie es auch genannt wird.
Das ELF musst du dann mit einem Tool wie avr-objcopy in ein HEX umwandeln. Du kannst zwar auch ein ELF auf den AVR laden, aber das ist nicht ausführbar (zumindest nicht ohne ELF-Loader, der die Umwandlung in Maschinencode übernimmt). In ELF ist noch viel Zeug drin wie Symbol- und Debug-Informationen, die nicht aufn AVR gehören.
Den Inhalt kannst du aber anschauen mit avr-objdump -d foo.elf
Früher gab es bei WinAVR kleine, überschaubare Beispiel in einem Ordner Examples. Heutzutage gibt's nur noch Zeug mit riesigen, zuperkomplexen Makefiles als eiergelende Wollmilchsau die kein Schwanz mehr nachvollziehen kann. Wenn es funzt, schon, wenn nicht, hat man die Asrchkarte weil es nicht zu durchblicken ist für nen Einsteiger wo es hakt und wie man es behebt...







Zitieren
Lesezeichen