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
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
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.
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.
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
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é
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
Ü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
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
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
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...
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
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).
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
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.
> 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
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.
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
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
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...
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
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.
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
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
> 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
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.
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
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.
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
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.
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.