Makefile für ATMEL AVR Toolchain gesucht

Gast #3697048
Lesenswert?

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
Angehängte Dateien:
Gast #3697915
Lesenswert?

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?
#3697945
Lesenswert?

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
#3698169
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren