Forum: Compiler & IDEs WinAVR und neue Toolchain


von Reiner (Gast)


Lesenswert?

Hallo zusammen,

Andere Beiträge zu diesem Thema sind schon recht alt.
Daher meine konkrete Frage:

Ich will die letze WinAVR Distribution von 2010 mit der letzten Atmel 
Toolchain verheiraten. Gehe ich richtig in der Annahme, daß alles von 
WinAVR-20100110 ausser \utils, \pn, WinAVR-20100110-uninstall.exe, und 
path.log gelöscht werden soll und die gesamte Toolchain in das WinAVR 
Verzeichnis kopiert wird ?

Funktionieren tut das schon mal. d.h. ich kann compilen und linken, 
möchte aber sicher gehen, daß ich nichts vergessen habe.

Gruß
Reiner

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Warum in aller Welt willst du was löschen?

von Reiner (Gast)


Lesenswert?

Johann L. schrieb:
> Warum in aller Welt willst du was löschen?

Ja soll ich die alte Toolschain mit der neuen mischen ?
Was kommt da raus ?

Reiner

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Warum in aller Welt willst du was mischen?

Es können beliebig viele Toolchains parallel installiert werden, und 
zwar in unterschiedliche Ordner.

Es gibt dann 2 Möglichkeiten, die Toolchain auszuwählen:

1) Angabe des absoluten Pfades, z.B. im Makefile
1
e:\Installed\Toolchain-xyz\bin\foo-gcc modul.c -c ...

2) Eintragen des Verzeichnisses, in dem foo.gcc zu finden ist, in die 
PATH Umgebungs-Variable.  Aufruf von "foo-gcc" nimmt dann das Programm, 
das als erstes im Pfad gefunden wird.

Einfach mal auf einer Console ausprobieren! foo-gcc --version zeigt dann 
ab es der Compiler ist, den du erwartest.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Und "mischen" oder "löschen" oder "überschreiben" würd ich auf gar 
keinen Fall.  ZUm einen ist das nicht notwendig, und zum anderen ist 
danach absolut unklar, in welchem Zustand sich das Ding befindet.

von Reiner (Gast)


Lesenswert?

Johann L. schrieb:
> Und "mischen" oder "löschen" oder "überschreiben" würd ich auf gar
> keinen Fall.  ZUm einen ist das nicht notwendig, und zum anderen ist
> danach absolut unklar, in welchem Zustand sich das Ding befindet.

Genau darum geht es mir.
Mischen, d.h. überschreiben der alten Dateien unter gleichzeitiger 
Beibehaltung der Dateien, die nicht mehr relevant sind will ich nicht.
Da sind Patches, Docs, etc, die nur für die 2010 Distribution galten.

Aber, die Atmel Toolchain hat keine Utilities  wie z.B. make.exe etc., 
da sie auf das Vorhandensein von Atmel Studio setzt.  Darum meine Frage 
(siehe erster Beitrag):  Alles löschen ausser utils, pn, und die 
uninstall.exe.

Also, falls jemand das schon mal gemacht hat, beantwortet doch einfach 
meine Frage, oder sagt was ihr machen würdet und nicht was ihr nicht 
machen würdet.

Gruss
Reiner

von Rene H. (Gast)


Lesenswert?

Reiner schrieb:
> Also, falls jemand das schon mal gemacht hat, beantwortet doch einfach
> meine Frage, oder sagt was ihr machen würdet und nicht was ihr nicht
> machen würdet.

Hat doch Johann beantwortet. Parallel installieren.

Grüsse,
René

von Reiner (Gast)


Lesenswert?

Ein Nachschlag zum vorigen Beitrag.
Die Verzeichnisstruktur der Atmel Toolchain unterscheidet sich von der 
Struktur von WinAvr. Die Toolchain ist allein nicht funktionabel, da 
alle Utility Programme fehlen.

Dies zum Hintergrund meiner Frage.
Gruss
Reiner

von Oliver S. (oliverso)


Lesenswert?

Üblicherweise sind bei solch abstrusen Fragen selten die Antworten das 
Problem, sondern immer die Fragen.

Und nein, das hat noch niemand gemacht, denn WinAVR mit neuerer 
toolchain überschreiben ist in etwa wie ein Döner ohne Brot, Fleisch. 
Salat, und Soße, dafür mit Pizzateig und Käse.

Du hast richtig erkannt, daß die neuen Atmel toolchains ohne make (und 
ohne Notepad) kommen. Wenn du unbedingt nur eine toolchain auf dem 
Rechner haben willst, kopier dir halt das make in den bin Ordner der 
neuen Toolchain, und alles wird gut.

Oliver

von Reiner (Gast)


Lesenswert?

Oliver S. schrieb:
> Und nein, das hat noch niemand gemacht

Hallo Oliver,
ja das ist wohl das Problem: Nicht die abstruse Frage sondern die 
Antworten von Leuten, die das noch nie gemacht haben.

Das Kopieren von make.exe allein reicht wohl nicht ganz aus; der Rest 
der utilities muss wohl auch noch mit.  Ich kann sehr wohl sehen, dass 
der richtige Compiler invoked wird, aber ich wollte nur wissen, ob ich 
bei dem Kopieren sonst noch was verg3ssen habe.  Aber so ist das eben 
mit den abstrusen Fragen.

Reiner

von Oliver S. (oliverso)


Lesenswert?

Reiner schrieb:
> Das Kopieren von make.exe allein reicht wohl nicht ganz aus; der Rest
> der utilities muss wohl auch noch mit.

Tja, man muß nicht alles gemacht haben, um zu wissen, wie es geht. Wenn 
dir nur das make fehlt, dann brauchst du auch nur das make zu kopieren. 
Klingt blöd, ist aber so. Wenn du auch noch den Rest der Utilities 
benötigst, musst du die natürlich auch noch kopieren. Die 
Atmel-Toolchain braucht die aber alle nicht. Die hat alles dabei, um 
vollständige Programme zu erzeugen.

Oliver

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Reiner schrieb:
> Mischen, d.h. überschreiben der alten Dateien unter gleichzeitiger
> Beibehaltung der Dateien, die nicht mehr relevant sind will ich nicht.
> Da sind Patches, Docs, etc, die nur für die 2010 Distribution galten.

Mit Oatches kannst du eh nix anfangen, weil die sich i.d.R auf die 
Quellen der Tools beziehen.

> Aber, die Atmel Toolchain hat keine Utilities  wie z.B. make.exe etc.,
> da sie auf das Vorhandensein von Atmel Studio setzt.

Na und?  Wenn WinAVR weiterhin im PATH ist, aber nach einer neueren 
Version, wird make immer noch dort gefunden.  Es sei denn, in einem Pfad 
vor dem WinAVR-Pfad wird ein make gefunden, was nach deinen Angaben ja 
nicht der Fall ist.

Und außerdem steht make in einem eigenen Verzeichnis mit anderen Utils 
und nicht zusammen beim Compiler.  Beispiel WinAVR-20100110

Compiler (avr-gcc) steht in ./bin
make steht in ./utils/bin

> Also, falls jemand das schon mal gemacht hat, beantwortet doch einfach
> meine Frage,

Hab ich schon, und ich hab momentan genau 25 Versionen installiert, von 
3.4.6 bis 5.2.1, darunter WinAVR, Atmel-Toolchains und selber generierte 
Canadian Crosses von 
http://sourceforge.net/projects/mobilechessboar/files/avr-gcc%20snapshots%20(Win32)/

> oder sagt was ihr machen würdet und nicht was ihr nicht
> machen würdet.

Du kannst meinen Beitrag lesen und was ich zu PATH geschrieben habe oder 
Aufruf per absolutem Pfad. Aber lesen musst du schon...

von Reiner (Gast)


Lesenswert?

Oliver S. schrieb:
> Die
> Atmel-Toolchain braucht die aber alle nicht. Die hat alles dabei, um
> vollständige Programme zu erzeugen.

Hallo Oliver,

Prima, danke für die Antwort.  Dann nehme ich mal die utilities auch weg 
und kopiere nur make.exe in den bin Ordner und sehe ob linken etc. auch 
funktioniert.

Gruss
Reiner

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Es sind vielleicht außer make.exe noch ein paar andere Kleinigkeiten,
die sie bei Atmel weggelassen haben, und die du ggf. kopieren musst.
So richtig einleuchtend ist die Auswahl dessen, was sie an Utilities
mit reingenommen haben bei Atmel und was nicht, wohl nicht.

Auf jeden Fall müsstest du dir separat ein avrdude.exe installieren
(das uralte vom 2010er WinAVR zu kopieren, würde ich dir nicht
empfehlen).

von Reiner (Gast)


Lesenswert?

Jörg W. schrieb:
> Es sind vielleicht außer make.exe noch ein paar andere Kleinigkeiten,
> die sie bei Atmel weggelassen haben, und die du ggf. kopieren musst.
> So richtig einleuchtend ist die Auswahl dessen, was sie an Utilities
> mit reingenommen haben bei Atmel und was nicht, wohl nicht.
>
> Auf jeden Fall müsstest du dir separat ein avrdude.exe installieren
> (das uralte vom 2010er WinAVR zu kopieren, würde ich dir nicht
> empfehlen).

Hallo Jörg,

Jetzt kommt endlich die Antwort, auf meine Frage. avrdude brauche ich 
nicht, da ich ein anderes utility dafür habe.
Freut mich wieder mal von Dir zu hören.  Damals wohnte ich in Dänemark 
und wir haben oft wegen der libc und neuen Funktionen miteinander 
kommuniziert)-:

Gruss
Reiner

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Damals wohnte ich in Dänemark und wir haben oft wegen der libc und neuen
> Funktionen miteinander kommuniziert)

Ja, ich kann mich dunkel erinnern.

von Reiner (Gast)


Lesenswert?

> Ja, ich kann mich dunkel erinnern.

Ja, darum stehe ich wohl auch noch in Eurer Liste der Copywrite holder 
und Entwickler.

Aber schönen Dank für den Hinweis mit der Toolchain.

Gruss Reiner

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Ja, darum stehe ich wohl auch noch in Eurer Liste der Copywrite holder
> und Entwickler.

Ja, irgendwas ist dabei originär von dir gewesen.  Kann sein, dass
es inzwischen durch Rewrites mal ersetzt worden ist.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Wozu ist denn das Kopieren / Überschreiben / Löschen notwendig?  Soll 
eine neue Distribution erstellt werden?

von Reiner (Gast)


Lesenswert?

Johann L. schrieb:
> Wozu ist denn das Kopieren / Überschreiben / Löschen notwendig?  Soll
> eine neue Distribution erstellt werden?

Hallo Johann,

Nein, absolut nicht.  Ich habe nur gerade einen Rechner neu mit Windows 
7 installiert und möchte gerne alle meine alten Projekte erhalten, da 
der alte Compiler nur noch auf einem virtuellen XP läuft.

Gruss
Reiner

von Reiner (Gast)


Lesenswert?

Jörg W. schrieb:
> Ja, irgendwas ist dabei originär von dir gewesen.  Kann sein, dass
> es inzwischen durch Rewrites mal ersetzt worden ist.

Hallo Jörg,

Ja die rund 30 Funktionen der string lib und math lib stammten mal von 
mir.  Aber die sind sicher alle neu geschrieben worden )-:

Lass uns den Thread schliessen.

Reiner

von Jan L. (ranzcopter)


Lesenswert?

Reiner schrieb:

> Hallo Johann,
>
> Nein, absolut nicht.  Ich habe nur gerade einen Rechner neu mit Windows
> 7 installiert und möchte gerne alle meine alten Projekte erhalten, da
> der alte Compiler nur noch auf einem virtuellen XP läuft.

Bei mir lief der alte Compiler zwar einwandfrei unter Win7_64, hat aber 
einfach erheblich grösseren Code erzeugt, sodass z.B. bestimmte 
Atmega328-Projekte nicht mehr ins Flash passten. Alles ausser pn u. 
utils gelöscht, die fertige Toolchain mit gcc-4.9.1 vom Avrstudio7 
ausgepackt, und gut war. Keine Ahnung, warum Leute da so'n Problem drin 
sehen, ich hab' jedenfalls keine damit bislang...

von Reiner (Gast)


Lesenswert?

Hallo Jan,

Ja, mich haben die Antworten auch verwundert und teilweise amüsiert. 
Genau das war meine Frage:
Alles ausser utils und pn löschen? (So wie in der Bibel: Eure Antwort 
sei ja oder nein, alles andere ist von Übel):-

Auch bei mir funktioniert die von Dir geschilderte Lösung problemlos, 
aber ich wollte eben sichergehen, ob ich etwas vergessen habe.

Mein alter Compiler von 2005 lief unter Win7-64 pro nicht mehr.  Im 
virtuellen XP mode geht es, aber das ist keine Lösung.
Die Distribution von 2010 läuft, aber bevor ich ca 50 Projekte umstelle, 
mòchte ich dann doch die neueste Version der libc, und des erheblich 
besseren Compilers haben.

Gruss
Reiner

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> die neueste Version der libc

Da bin ich leider noch in der Bringeschuld …

Naja, OK, wenn du die Atmel-Toolchain nimmst, sie haben wohl auf einer
SVN-Version aufgesetzt statt auf dem letzten Release.

von Reiner (Gast)


Lesenswert?

Hallo Jörg,

ich muss morgen mal nachschauen welche Version die libc der momentanen 
Atmel Toolchain hat. (Ich habe gerade nur ein Tablet in der Hand)

Andererseits ist es schon ein Quantensprung von der 2005 noch selbst 
kompilierten Version zu der 2015 Version.

Daher, lass Dir Zeit.

Gruss
Reiner

von Reiner (Gast)


Lesenswert?

Hallo,

Um das Thema abzuschliessen un ohne Interesse an weiteren ideologischen 
Diskussionen:
Falls dies jemanden interessiert, eine neue WinAvr Version ist leicht zu 
erzeugen, auch wenn man dann den Döner mit Pizzateig isst (s.o.), weil 
man eben gerne ohne Studio programmiert.

1. Installation von WinAvr20100110.
2. Download der Toolchain von Atmel.
3. Löschen aller Verzeichnisse in WinAvr ausser pn und utils.
4. Kopieren aller Verzeichnisse der Toolchain in das WinAvr Verzeichnis.
5. Umbenennung des Verzeichnisses WinAvr20100110 in WinAvr.
6. Änderung der Pfadeinträge von WinAvr20100110 in WinAvr.

Und ja, man kann stattdessen auch /pn und /utils in das Toolchain 
Verzeichnis kopieren, aber das Ergebnis ist dasselbe.

Die ca. 10 Projekte, die ich heute konvertiert, und getestet habe laufen 
problemlos.

Gruss
Reiner

von Oliver S. (oliverso)


Lesenswert?

> Und ja, man kann stattdessen auch /pn und /utils in das Toolchain
> Verzeichnis kopieren, aber das Ergebnis ist dasselbe.

Ist aber deutlich einfacher. Noch einfacher wäre es, wie oben schon 
geschrieben, beide toolchains parallel zu installieren.

Oliver

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Oliver S. schrieb:
>> Und ja, man kann stattdessen auch /pn und /utils in das Toolchain
>> Verzeichnis kopieren, aber das Ergebnis ist dasselbe.
>
> Ist aber deutlich einfacher. Noch einfacher wäre es, wie oben schon
> geschrieben, beide toolchains parallel zu installieren.

Das neue Windos verweigert wohl die Installation der älteren Version.

von Reiner (Gast)


Lesenswert?

Johann L. schrieb:
> Das neue Windos verweigert wohl die Installation der älteren Version.

Nein, eigentlich nicht.  Was nicht geht ist WinAVR in das Verzeichnis
C:\Program Files (X86) zu installieren, in das es eigentlich gehört. 
Make findet dann wohl wegen der Klammern und der Whitespaces die 
binaries nicht und läuft Amok. Wird WinAVR in C:\ WinAVR installiert 
geht das.  Der Fehler ist aber schon seit Urzeiten bekannt und meines 
Erachtens der Grund dafür, daß keine Distribution nach 2010 mehr 
erfolgte.

Reiner

von Rudolph R. (rudolph)


Lesenswert?

Hmm, das einzige Problem was ich mal hatte war das beim Konvertieren 
alter Studio 4 Projekte in Studio 6 mangels inzwischen nicht mehr 
vorhandenem WinAVR nicht mehr compiliert werden konnte.

Einfache Lösung, mit Studio 6 ein neues Projekt auf machen, den 
Quelltext im einfachsten Fall per Copy-Paste rüber ziehen, Projekt neu 
einstellen, fertig.

Bestimmt kann man das auch von Hand alles auf die neue Toolchain 
verbiegen, mit einem frisch erstellten Projekt ist aber auf jeden Fall 
sauber.

Interessant sind dann nur so Fälle wo sich scheinbar grundlos Register 
und Bit-Namen geändert haben und zum Beispiel noch eine "0" neu mit drin 
steht obwohl es auch weiterhin nur eine SPI Unit in dem Controller gibt.

von Oliver S. (oliverso)


Lesenswert?

Rudolph R. schrieb:
> Interessant sind dann nur so Fälle wo sich scheinbar grundlos Register
> und Bit-Namen geändert haben und zum Beispiel noch eine "0" neu mit drin
> steht obwohl es auch weiterhin nur eine SPI Unit in dem Controller gibt.

Hm. Hast du dafür mal ein Beispiel?

Oliver

von Rudolph R. (rudolph)


Lesenswert?

Oliver S. schrieb:
> Hm. Hast du dafür mal ein Beispiel?

Ich bin nicht 100% sicher, aber das war entweder beim Mega88PA oder 
Mega164PA, entweder SPI und/oder UART.
Naja, einmal kurz auf die Includes der neuen Toolchain ändern, fertig.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Ich will die letze WinAVR Distribution von 2010 mit der letzten Atmel
> Toolchain verheiraten.

Beitrag "Re: avr-gcc 4.7 für Atmel Studio 4 Windows"

von Heiko L. (drcaveman)


Lesenswert?

Also ich benutze die Atmel-Toolchain mit MinGW, CMake und Eclipse.
Von MinGW kommt dann das eigentliche Make (mingw32-make) und CMake 
bastelt ein Eclipse Projekt (kann aber auch andere IDE-Projekte 
generieren- z.B. CodeBlocks, oder ein "normales" Makefile).

Kannst du ja auch mal ausprobieren.

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.