Forum: Compiler & IDEs WinAVR für ATmega328PB


von Rainer G. (rainerg)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

leider gelingt es mir nicht, nach Durchführung der Anweisungen in dieser 
Anleitung
https://gist.github.com/goncalor/51e1c8038cc058b4379552477255b4e1
meine Test-Applikation von ATmega328P auf den ATmega328PB umzustellen.
Die neueste Version von WinAVR habe ich zuvor installiert, ein .hex-File 
für den ATmega328P wird korrekt generiert.
Offenbar ist WinAVR die MCU ATmega328PB nicht bekannt, denn beim Aufruf 
wird die Fehlermeldung „unknown MCU 'atmega328pb' specified“ ausgegeben.
Weiß hier jemand, wo mein Fehler liegt und wie ich den beheben kann?

Gruß Rainer

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer G. schrieb:

> Die neueste Version von WinAVR habe ich zuvor installiert

Möglicherweise hast du das.

Aber was du ganz sicher nicht getan hast: Du hast nicht dafür gesorgt, 
dass eben diese Toolchain auch benutzt wird, wenn du dein make 
aufrufst...

von Johann L. (gjlayde) Benutzerseite


Lesenswert?


von Nemopuk (nemopuk)


Lesenswert?

Wenn du die neuen Features des Mikrocontrollers nicht brauchst, kannst 
du die IDE (bzw. dein Makefile) einfach auf ATmega328P einstellen, denn 
der PB ist dazu binär-kompatibel.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Johann L. schrieb:
> https://sourceforge.net/projects/winavr/files/avr-gcc
>
> Kein WinAVR, sollte aber gut genug sein.

Löst aber wahrscheinlich das Problem des TO nicht. Denn schon in der 
Beschreibung der Sache steckt ein entscheidender Fehler:

> The compiler, assembler and linker executables like avr-gcc.exe are
> located in the bin/ folder. You can execute them by using the full path
> to the executable, or by adding the bin folder to the PATH environment
> variable.

Und genau das "adding" ist kompletter SCHWACHSINN. Das funktioniert 
genau dann (und NUR dann), wenn es vorher nix diesbezügliches im Pfad 
gab. Gab es aber beim TO ganz offensichtlich...

von Nemopuk (nemopuk)


Lesenswert?

Ob S. schrieb:
> Und genau das "adding" ist kompletter SCHWACHSINN

Offenbar hältst du dich für besonders schlau. Ich wage zu behaupten dass 
es JEDER Softwareentwickler, der keine schwere Hirnverletzung hat, ohne 
deine Hilfe hin bekommt.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Nemopuk schrieb:

> Offenbar hältst du dich für besonders schlau. Ich wage zu behaupten dass
> es JEDER Softwareentwickler, der keine schwere Hirnverletzung hat, ohne
> deine Hilfe hin bekommt.

Der TO ganz offensichtlich nicht. Genau deswegen ist er mit seiner Frage 
hier aufgeschlagen.

Und abgesehen davon: Der Hilfetext IST nunmal sachlich falsch 
(zumindest eben ohne die Randedingung, das es vorher nichts 
Einschlägiges im Pfad gab).

Willst du das bestreiten? Falls ja: bitte begründen!

von Rainer G. (rainerg)


Angehängte Dateien:

Lesenswert?

Danke für eure Hinweise. Ich möchte gerne die zusätzlichen Timer des 
ATMega328PB nutzen, deshalb der beabsichtigte Umstieg. Ich hänge das 
makefile und den batch mit dem Aufruf an, evtl. kann jemand darin das 
Problem erkennen.

Gruß Rainer

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer G. schrieb:

> Danke für eure Hinweise. Ich möchte gerne die zusätzlichen Timer des
> ATMega328PB nutzen, deshalb der beabsichtigte Umstieg. Ich hänge das
> makefile und den batch mit dem Aufruf an, evtl. kann jemand darin das
> Problem erkennen.

Ja, kann man. Der explizit angegebene Pfad verweist halt auf die uralte 
Toolchain von 2010.

von Rainer G. (rainerg)


Angehängte Dateien:

Lesenswert?

Danke, dann habe ich heute wohl eine alte Version installiert.
Dumme Frage: was muss ich denn installieren, gibt es eine neuere WinAVR 
als hier gelistet?

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer G. schrieb:

> Danke, dann habe ich heute wohl eine alte Version installiert.
> Dumme Frage: was muss ich denn installieren, gibt es eine neuere WinAVR
> als hier gelistet?

Du musst wahrscheinlich nix mehr installieren, das hast du nach deiner 
Aussage ja bereits getan. Was du tun musst: in der Batchdatei den Pfad 
so ändern, so dass er auf die neuere Toolchain zeigt. Dazu musst du 
natürlich wissen, wo die im Dateisystem steckt. Das hast du bei der 
Installation festgelegt. Zumindest hast du das vereingestellte Ziel 
akzeptiert (nachdem es dir angezeigt wurde).

Wenn du das nicht mehr weißt, darfst du die Windows-Suche bemühen. Lasse 
die in C:\ nach "avr-gcc.exe" suchen. Sollte (mindestens) zwei Treffer 
zutage fördern. Einer davon ist der falsche, also der, auf den dein 
Batch aktuell zeigt.

Einer der anderen ist der richtige. Nun musst du nur noch die eine Zeile 
im Batch entsprechend anpassen.

von Nemopuk (nemopuk)


Lesenswert?

Rainer G. schrieb:
> was muss ich denn installieren, gibt es eine neuere WinAVR
> als hier gelistet?

WinAVR wird seit 2010 nicht mehr weiter entwickelt.
Alternativen siehe http://stefanfrings.de/avr_ide/index.html#windows

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Nemopuk schrieb:
> Rainer G. schrieb:
>> was muss ich denn installieren, gibt es eine neuere WinAVR
>> als hier gelistet?
>
> WinAVR wird seit 2010 nicht mehr weiter entwickelt.
> Alternativen siehe http://stefanfrings.de/avr_ide/index.html#windows

Ein Ersatz wurde doch von Johann L. bereits vergeschlagen und angeblich 
auch vom TO bereits installiert (wobei das nicht zweifelsfrei ist).

Der Knackpunkt ist halt einzig, die Path-Variable im Batch entsprechend 
anzupassen.

JEDEM Softwareentwickler, der keine schwere Hirnverletzung hat (deine 
eigenen Worte!) ist das sofort klar...

von Rainer G. (rainerg)


Angehängte Dateien:

Lesenswert?

Die Suche nach avr-gcc.exe hat das angehängte Ergebnis. Den bei der 
Installation vorgeschlagenen Pfad habe ich übernommen, das ist der
 C:\WinAVR-20100110. Mein Batch zeigt m.E. auch auf diesen Pfad, was 
müsste ich denn jetzt anpassen? Gibt es eine neuere Version von WinAVR?

von Nemopuk (nemopuk)


Lesenswert?

Rainer G. schrieb:
> Gibt es eine neuere Version von WinAVR?

Wie gesagt: Nein. Aber Alternativen wurden bereits vorgeschlagen.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer G. schrieb:
> Die Suche nach avr-gcc.exe hat das angehängte Ergebnis.

OK, dann hast du halt nicht wirklich etwas Neueres installiert (obwohl 
du das ursprünglich behauptet hast).

Hole das nach. Johann L. hat hier im Thread einen Vorschlag präsentiert.

> Gibt es eine neuere Version von WinAVR?

Ja und nein. Nein: nicht von Atmel oder Microchip als fertiges, aber vom 
restlichen Solms getrenntes Paket. Ja: von anderen bereitgestellt.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Rainer G. schrieb:
Gibt es eine neuere Version von WinAVR?

Nein. Im Download-Bereich des WinAVR Projekts gibt es Builds der GNU 
Toolchain für AVR im Ordner "avr-gcc". Ohne Tools wie make, grep, sed 
etc und ohne Installer. Siehe README.

von Rainer G. (rainerg)


Lesenswert?

Vielen Dank für die Klarstellung, ich werde es mal mit diesem Vorschlag 
versuchen.

Gruß Rainer

von Peter D. (peda)


Lesenswert?

Rainer G. schrieb:
> was muss ich denn installieren, gibt es eine neuere WinAVR
> als hier gelistet?

WINAVR ist von 2010, der ATmega328PB aber erst von 2015.

Installiere das AS7. Dann findest Du den AVR-GCC unter:
C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain

von Rainer G. (rainerg)


Lesenswert?

Hallo Peter D,
danke für den Tipp! Ich habe es so gemacht wie du vorgeschlagen hast und 
damit wird jetzt meine Applikation für den ATMega328PB generiert.
Der Test steht zwar noch aus, aber ich bin ganz zuversichtlich dass das 
erzeugte .hex-File auch lauffähig ist.
Vielen Dank!
Gruß Rainer

von Rainer G. (rainerg)


Lesenswert?

Ich möchte noch ergänzen, dass auch eine neuere Version des avrdude.exe 
und die dazugehörige avrdude.conf, siehe
https://github.com/avrdudes/avrdude/releases
verwendet werden muss. Die in der im ersten Beitrag erwähnten Anleitung 
beschriebenen Modifikationen für avrdude.conf funktionieren mit der 
alten avrdude.exe von 2010 nicht, weil der Eintrag "part parent" zu 
einen Syntaxfehler führt. In der neuen avrdude.conf sind die 
beschriebenen Änderungen bereits enthalten, diese funktioniert ohne 
weitere Modifikation.
Gruß Rainer

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
Noch kein Account? Hier anmelden.