Seit langer Zeit nutze ich WinAVR und benutze Makefiles die auf mfile von Jörg Wunsch basieren. Mir fehlen die Kenntnisse, um zu verstehen, welche Funktionen die einzelnen Optionen im Detail haben. Das war auch kein Problem, weil alles so funktionierte (WinAVR 2006 - 2010), wie Jörg es vorgegeben hat. Bei der ATMEL AVR Toolchain scheint es nun ein Problem zu geben. Beim Versuch, den AVR-Etherboot von Ulrich Radig http://www.ulrichradig.de/home/index.php/avr/avr-etherboot ohne AVR-Studio 6 anzupassen (mit Editor und Makefile aus WinAVR) erhalte ich folgende Fehlermeldungen: set -e; avr-gcc -MM -mmcu=atmega1284p -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \ [ -s main.d ] || rm -f main.d Der Befehl "sed" ist entweder falsch geschrieben oder konnte nicht gefunden werden. avr-gcc (AVR_8_bit_GNU_Toolchain_3.4.4_1229) 4.8.1 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "-f" ist syntaktisch an dieser Stelle nicht verarbeitbar. make.exe: *** [sizebefore] Fehler 255 Der Versuch, die Make.exe der AVR Toolchain mit der Version von WinAVR zu tauschen, brachte leider keinen Erfolg. Kann mir jemand mitteilen, was ich am Makefile ändern muss, bzw. wo ich eine Mustervorlage für AVR Toolchain finden kann? Vielen Dank schon jetzt! Erwin
Scheint so, als haettest du kein SED (http://unixhelp.ed.ac.uk/CGI/man-cgi?sed) installiert. Ggf. solltest du mal eine GNU Umgebung in dein Windows installieren - z.B. MinGW (http://www.mingw.org/) ... MfG
Hallo Stephan, vielen Dank für die Antwort! Bei einer Toolchain gehe ich davon aus, dass diese komplett ist und ohne Zusätze benutzt werden kann. In so fern sollte es doch eine Möglichkeit geben, mit den entsprechenden Steueranweisungen, welche nach meinem Kenntnisstand im Makefile gebündelt sind, aus den C-Code ein Hex zu erzeugen. Ich denke, das AVR-Studio auch nichts anders macht und genau diese Steueranweisungen suche ich. In so fern meine Frage nach dem Makefile. Dein Ansatz, den ich auch sehr interessant finde, geht in eine andere Richtung. Dazu hätte ich besser die Überschrift "Wie und mit welchen Zusatzbausteinen mache ich aus der AVR-Toolchain ein WinAVR 2014 klassischer Bauart" gewählt. Da mir letztlich gleich ist, ob mein Weg oder Dein Lösungsansatz zum Ziel führt, habe ich MinGW installiert. Ergebnis: - der 1. Fehler "... "sed" ...konnte nicht gefunden werden." ist nun bereinigt. - der 2. fehler ""-f" ist syntaktisch an dieser Stelle nicht verarbeitbar." besteht immer noch. Ich bin also über keinen der Ansätz bisher an Ziel. Hat jemand einen Tip für mich?
Erwin schrieb: > Bei einer Toolchain gehe ich davon aus, dass diese komplett ist und ohne > Zusätze benutzt werden kann. Dem ist aber nicht so. Die neue Version von WinAVR brungt nur den Compiler mit sich. "Since the new toolchain avr8-gnu-toolchain-installer-3.4.3.12-win32.any.x86.exe is without an installer and thus harder to setup/use, you might want to use older avr-toolchain-installer-3.4.2.1573-win32.win32.x86 available from the mirrors instead. " Erwin schrieb: > In so fern sollte es doch eine Möglichkeit geben, mit den entsprechenden > Steueranweisungen, welche nach meinem Kenntnisstand im Makefile > gebündelt sind, aus den C-Code ein Hex zu erzeugen. Eine Makefile ist nur ein "besseres" bash-schript - da werden ganz normal externe Programme gerufen. Wie z.B. eben "sed". Wenn du die externen Programme nicht installiert hast (z.B. weil du die ganze Umgebung die zu make gehoert nicht installiertst), dann geht es halt nicht. "sed" in der Makefile zu verwenden ist zudem schon etwas exotischer - Atmelstudio wird sowas sicherlich nicht machen? Erwin schrieb: > der 2. fehler ""-f" ist syntaktisch an dieser Stelle nicht > verarbeitbar." besteht immer noch. Das "-f" kommt vom "rm -f main.d" ? Lass das "--force" eben weg. MfG
Erwin schrieb: > (mit Editor und Makefile aus WinAVR) erhalte ich > folgende Fehlermeldungen: > > set -e; avr-gcc -MM -mmcu=atmega1284p -I. -g -Os -funsigned-char > -funsigned-bitfields -fpack-struct -fshort-enums -Wall > -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c \ > | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \ > [ -s main.d ] || rm -f main.d > Der Befehl "sed" ist entweder falsch geschrieben oder > konnte nicht gefunden werden. Was für eine Steinzeit-Version von WinAVR nutzt du denn? "sed" wurde mal gaaaaanz früher in den makefiles verwendet, um die dependencies zu generieren. Seit ewigen Zeiten macht das inzwischen der Compiler selber, und auch in den per MFile aus WinAVR2010 erzeugte makefiles ist kein Aufruf von sed mehr enthalten. Erwin schrieb: > Bei einer Toolchain gehe ich davon aus, dass diese komplett ist und ohne > Zusätze benutzt werden kann. Kann sie. Allerdings nicht mit nicht zur Version passenden makefiles. Bau dir halt ein passendes makefile, so schwierig ist das ja nun nicht. Wenn du das Studio nicht nutzen willst, wirst du dich mit makefiels beschäftigen müssen. Ohne geht es nicht. Oliver
Sed etc für Win32 http://unxutils.sourceforge.net/ http://sourceforge.net/projects/unxutils/ http://www.cyberciti.biz/faq/unix-command-line-utilities-for-windows/ /Bingo
Oliver S. schrieb: > "sed" wurde mal > gaaaaanz früher in den makefiles verwendet, um die dependencies zu > generieren. Seit ewigen Zeiten macht das inzwischen der Compiler selber Ich vermute, du hast nicht verstanden, was der sed-Aufruf macht. Da steckt Information drin, die das Makefile hat, nicht aber der Compiler.
Konrad S. schrieb: > Ich vermute, du hast nicht verstanden, was der sed-Aufruf macht. Doch, habe ich. Vielleicht schaust du dir mal in aktuelleren makefils an, wie da mit dem Compiler die dependency-Filmes erstellt werden, oder liest die gcc-Doku. Oliver
@Oliver S Ich muss mich bei dir entschuldigen, du hast recht. Meine Technik zur Erzeugung der Dependencies ist schon ein wenig älter, da gab es dieses neumodische Zeug noch nicht. ;-)
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.