mikrocontroller.net

Forum: Compiler & IDEs Mehrere Versionen der Toolchain vorhalten ?


Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

welches ist der beste ( vernünftigste ) Weg, wie man unter XP mehrere 
Versionen der (Win-) Avr Toolchain "vorhalten" kann ?

Vieleicht VM's ( XP - Linux ) ?

Ich möchte ungern die "alte" von 2006 "platt" machen um die älteren 
Projekte ohne Anpassung des Source-Codes weiter kompilieren zu können.

Viele Grüße,

Stefan

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier hat PeDa ein Script zum automatisierten Umbenennen der 
Installationsverzeichnisse gepostet:
Beitrag "Automatisierte Umschaltung zwischen GCC Versionen"
Vielleicht hilft das ja.

Und hier hast du dieselbe Frage vor zwei Jahren schonmal gestellt, aber 
keine Hilfreiche Antwort bekommen :)
Beitrag "Koexistenz mehrerer WinAVR  Versionen ?"

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist denn das Problem?

Anstatt im Aufruf avr-gcc zu schreiben, gibt man eben den absoluten Pfad 
zum avr-gcc an. Bei make: Viele Makefiles verwenden/setzen die Variable 
CC für den C-Compiler, welche man überschreiben kann. Einfach mal nen 
Blick ins Makefile wagen, und make starten mit

make CC=pfad-zum-gcc/avr-gcc

Bei der Installation von WinAVR wird eh net mehr gemacht, als das 
Installationsverzeichnis zum Path hinzuzufügen, d.h. in Path kommt

<INSTALL-DIR>/bin und <INSTALL-DIR>/utils/bin

hinzu, und was vorne steht, wird eben zuerst gefunden.

Ich hab's im (selbst geschriebenen) Makefile so gelöst:
CPATH=

ifeq ($(GCC_VERSION),430)
    CPATH       = e:/WinAVR-20080512/bin/
endif    
ifeq ($(GCC_VERSION),422)
    CPATH       = e:/WinAVR-20071221/bin/
endif 

CC             = $(CPATH)avr-gcc -mmcu=$(MCU_TARGET)
LD             = $(CC)

Wenn GCC_VERSION undefiniert ist, wird die Standard-Installation 
genommen, und wenn GCC_VERSION=430 ist eben der gcc 4.3.0. So kann man 
dann auch die CFLAGS anpassen.

Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arghh - ich bin ja so Betriebsblind.

Das Umbennen des WINAVR-Verzeichnises habe ich garnicht ins Auge gefasst 
- weil ich garnicht damit gerechnet hab das das hinreichend sein könnte. 
( ... bin ein wenig verdorben durch die ganze Windows-Software die bei 
installationen gigabytes an zueinander inkompatiblen DLL's in einem 
System verteilen )

Ich probiere es mal auf dem Wege des Umbenennens...

Grüße,

Stefan

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter XP und mit NTFS File-System geht es auch ganz einfach:

Installiere die WinAvr's in verschiedene Verzeichnisse:

c:\WinAVR-20060421
c:\WinAVR-20070525
c:\WinAVR-20080610

Mit dem Befehl junction erzeugst du einen (nur mit NTFS verwendbaren) 
Hardlink, also ala Linux.

http://technet.microsoft.com/de-de/sysinternals/bb...

Dann verwendest du verschiedene Batches

a) winavr-2006421.bat

junction -d c:\WinAVR
junction c:\WinAVR c:\WinAVR-20060421

b)WinAVR-20070525.bat

junction -d c:\WinAVR
junction c:\WinAVR c:\WinAVR-20070525

c) ...

In deinen makefiles verwendest du nur C:\Winavr oder verwendest
die globale path-Variable.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und natürlich nach jedem Umschalten ein "make clean" nicht vergessen, 
sonst linkst du evtl Object-Files zusammen, die von verschiedenen 
Compilerversionen generiert wurden.
Das funktioniert zwar im Allgemeinen, kann aber auch recht seltsame 
Effekte ergeben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.