Hallo,
habe hier ein altes C-Projekt für einen AT90, dass ich vor längerer Zeit
mit dem AVR-Studio 4 (genauer: 4.19.0.720) erstellt habe.
Dieses müsste in leicht veränderter Form neu compiliert werden (es soll
also ein leicht verändertes Hex-File erstellt werden).
Das Problem an der Sache ist, dass ich mittlerweile einen neuen Rechner
(auch XP) benutze und das AVR-Studio dafür neu installieren müsste.
Jetzt bin ich nicht sicher, welche Version des AVR-Studios genutzt
werden kann.
Muss für das Vorhaben noch mal die alte AVR-Studio-Version 4.19
installiert werden oder gehen auch die neueren Versionen (z.B. AVR
Studio 6)?
Viele Grüße!
g_reichert schrieb:> AVR Studio 6
Das gibt es gar nicht.
Atmel Studio 6.1 ist der aktuelle Nachfolger von AVR Studio 4.19
Der Compiler wird dir schon sagen, wenn ihm etwas nicht paßt. Aber i.A.
sollte das kein Problem sein. Evtl. mußt du das Projekt neu anlegen.
Die Ladezeiten vom Atmel Studio sind allerdings etwa 10-mal so lang, wie
bei AVR Studio - also nicht ungeduldig werden.
Danke für die schnelle Antwort und den Hinweis zu Atmel Studio und AVR
Studio!!!
Unter diesen Umständen würde ich lieber noch mal das AVR-Studio 4.19
installieren (habe die Installations-exe-Datei schon runtergeladen).
Wenn ich mich richtig erinnere, muss vorher noch eine Toolchain oder der
GCC installiert werden?!?
Kann jemand sagen, wo man diese Datei(en) bekommt?
(bin im Moment etwas unter Zeitdruck, sorry, wenn ich so "platt" frage)
dann sollest du eventuell darüber nachdenken, einfach den GCC (WIN-AVR)
zu downloaden und einfach ein Makefile zu verwenden. Dann kann man
einfach alles Kopieren und auf jedem Beliebigen PC bauen (ohne zu
installieren!). Mit einem kleinen init script kann man sogar dafür
sorgen das man verschiedene GCC hat, damit man ein altes Projekt
jederzeit identisch bauen.
Das müsste der WinAvr sein, den man beim AVR-Studio noch extra
installieren musste.
Und der ist auch dein eigentliches Problem, denn der Compiler ist es ja
letzten Endes, der gleich sein sollte. AVR-Studio oder Atmel-Studio ist
ja nur eine Hülle drumm herum, die das Projekt verwaltet und den jeweils
installierten Compiler aufruft.
Und da wirds jetzt schwierig. Denn im Grunde würdest du genau die
gleiche Compiler-Version brauchen, die du damals hattest. Die wirst du
aber nicht mehr wissen.
Das Problem: In der Zwischenzeit hat sich der Compiler ja auch weiter
entwickelt. Optimierungen wurden verändert, etc.
Bei einem gut geschriebenen C-Code sollte das kein Problem sein. Wie C
funktioniert ist bekannt und welche OPtimierungen der Compiler wann und
warum machen darf auch. Das Problem ist meistens, dass in altem Code ein
paar Annahmen stecken, die vom C-Standard nicht abgesegnet sind und von
damaligen Compilern nicht ausgenutzt wurden, heutige Compiler aber
schon. Und daher kommt dann das 'damals lief es noch, heute aber nicht
mehr'. Um das klar zu sagen: Schuld ist dann nicht der Compiler. Schuld
ist der Programmierer, der damals wissentlich oder unwissentlich
Schlupflöcher offen gelassen hat.
Mit ist natürlich klar, dass du zum jetzigen Zeitpunkt nicht gewillt
bist, derartige Schlupflöcher (falls es sie gibt) zu stopfen. Daher: auf
der sicheren Seite bist du nur mit exakt der gleichen Compiler-Version
wie damals. Allerdings: ein Versuch schadet nicht, auch wenn jetzt erst
mal der Testaufwand höher scheint.
Danke für die ausführlichen Antworten!
Karl Heinz schrieb:> Und da wirds jetzt schwierig. Denn im Grunde würdest du genau die> gleiche Compiler-Version brauchen, die du damals hattest. Die wirst du> aber nicht mehr wissen.
Habe den alten Rechner noch. Er funktioniert auch so weit, das Problem
ist aber, dass wahrscheinlich der AGP-Slot kaputt ist. Jedenfalls wird
der Grafikkartentyp nicht mehr richtig erkannt (CPU Z und GPU Z erkennen
ebenfalls den Kartentyp nicht). Die Grafikanzeige erfolgt wohl über eine
Art Win-Ersatz-Grafiktreiber. Das Ende vom Lied ist, dass das AVR-Studio
wohl deswegen nicht startet.
Wo findet man denn üblicherweise die Compilerversion, dann könnte ich
einfach auf der Festplatte nachsehen.
Da du das AVR Studio 4.X genutzt hast, wird wohl WinAVR installiert
sein.
Das legt sich standardmäßig in c:\WinAVR_XXX
Da solltest du fündig werden.
Einfach die c:\WinAVR_XXX\bin\avr-gcc -v in einer Eingabeaufforderung
aufrufen, das liefert die Version.
g_reichert schrieb:> Art Win-Ersatz-Grafiktreiber. Das Ende vom Lied ist, dass das AVR-Studio> wohl deswegen nicht startet.
Glaub ich zwar nicht. Aber egal.
> Wo findet man denn üblicherweise die Compilerversion, dann könnte ich> einfach auf der Festplatte nachsehen.
Schau auf der Festplatte nach. Bei mir liegt die WinAvr Installation im
Root-Verzeichnis. Wenn dort nichts ist, dann eben im Programme Ordner.
Der Ordner heisst "WinAVR-xxxxxxx", wobei das xxxxxxxx ein Datum
bezeichnet. Auf dem Rechner auf dem ich zur Zeit bin hab ich in der Root
zb ein Verzeichnis "WinAVR-20090313"
Habe den alten Rechner mittlerweile wieder angeschlossen und getestet.
Das AVR-Studio 4 startet tatsächlich (allerdings dauert es ewig).
Friedrich schrieb:> Das legt sich standardmäßig in c:\WinAVR_XXX
Auf dem besagten Rechner ist dort nichts zu finden.
Friedrich schrieb:> Einfach die c:\WinAVR_XXX\bin\avr-gcc -v in einer Eingabeaufforderung> aufrufen, das liefert die Version.
Funktioniert entsprechend nicht.
Karl Heinz schrieb:> Schau auf der Festplatte nach. Bei mir liegt die WinAvr Installation im> Root-Verzeichnis. Wenn dort nichts ist, dann eben im Programme Ordner.
"Root-Verzeichnis" sagt mir leider nichts, unter Programme ist nichts zu
finden.
Kann man die verwendete WINAVR-Version im AVR-Studio (das jetzt ja
anscheinend läuft) einsehen?
Hm...
Kannst du denn dann das Programm nicht einfach übersetzen?
Probier doch einfach mal in einer Eingabeaufforderung:
avr-gcc -v
Vielleicht steht es in deiner PATH Variable und du erhälst eine Ausgabe.
Irgendwo gibt es im AVR Studio 4 unter Projekte oder so
Einstellmöglichkeiten wo der Compiler liegt.
Da konnte man einen Haken bei AVR Toolchain oder so setzen, das geht bei
mir aber seit längerem nicht mehr, da habe ich die Pfade auf avr-gcc und
make von Hand gesetzt.
Friedrich schrieb:> Da konnte man einen Haken bei AVR Toolchain oder so setzen
Bei mir ist ein Haken gesetzt unter "External Tools - Use AVR Toolchain
(or WinAVR)"
Darunter steht:
avr-gcc: d:\programme\atmel\AVR tools\avr toolchain\bin\avr-gcc.exe
make: d:\programme\atmel\AVR tools\avr toolchain\bin\make.exe
g_reichert schrieb:> Friedrich schrieb:>> Da konnte man einen Haken bei AVR Toolchain oder so setzen>> Bei mir ist ein Haken gesetzt unter "External Tools - Use AVR Toolchain> (or WinAVR)">> Darunter steht:>> avr-gcc: d:\programme\atmel\AVR tools\avr toolchain\bin\avr-gcc.exe>> make: d:\programme\atmel\AVR tools\avr toolchain\bin\make.exe
Na dann hast du ja jetzt die Pfade, wo der Compiler residiert :-)
Friedrich schrieb:> Probier doch einfach mal in einer Eingabeaufforderung:> avr-gcc -v
Ah, dann wird direkt ein ganzer Haufen Infos ausgespuckt...
Die letzte Zeile lautet:
gcc version 4.5.1 <AVR_8_bit_GNU_Toolchain_3.2.3_314>
Hilft das weiter bei der Ermittlung des verwendeten Compilers?
g_reichert schrieb:> Friedrich schrieb:>> Probier doch einfach mal in einer Eingabeaufforderung:>> avr-gcc -v>> Ah, dann wird direkt ein ganzer Haufen Infos ausgespuckt...>> Die letzte Zeile lautet:> gcc version 4.5.1 <AVR_8_bit_GNU_Toolchain_3.2.3_314>>>> Hilft das weiter bei der Ermittlung des verwendeten Compilers?
Ja, natürlich.
Die GCC Version ist 4.5.1
Jetzt kommt der schwierige ....
Moment, wenn das Teil läuft, dann hast du doch alles was du brauchst.
Änderung machen, compilieren und du hast dein neues Hex.
g_reichert schrieb:> Die letzte Zeile lautet:> gcc version 4.5.1 <AVR_8_bit_GNU_Toolchain_3.2.3_314>>> Hilft das weiter bei der Ermittlung des verwendeten Compilers?
Deine Compilerversion steht da...
Es sieht so aus, als wäre bei dir kein WinAVR installiert (das letzte
WinAVR_ 20100110 hat GCC 4.3.3 und liegt eben meist an den beschriebenen
Stellen).
Bei dir sieht es so aus, als hättest du mal oder hast noch ein neueres
Atmel Studio (6?) installiert. Ich meine da verwendet Atmel mittlerweile
eine eigene Toolchain.
Ich glaube nicht, dass du dein "altes" Projekt (von wann eigentlich?)
damals mit dem GCC 4.5.1 kompiliert hast.
Karl Heinz schrieb:> Der Ordner heisst "WinAVR-xxxxxxx", wobei das xxxxxxxx ein Datum> bezeichnet. Auf dem Rechner auf dem ich zur Zeit bin hab ich in der Root> zb ein Verzeichnis "WinAVR-20090313"
Ist nicht in dem Format WinAVR-xxxxxxx, deshalb hatte ich mich
gewundert...
Brauche ich jetzt die entsprechende WinAVR-Install-exe, die den GCC
4.5.1 enthält?
g_reichert schrieb:> Brauche ich jetzt die entsprechende WinAVR-Install-exe, die den GCC> 4.5.1 enthält?
Zumindest finde ich bei Google kein Install-Programm auf
http://gcc.gnu.org/ für den GCC4.5.1
Karl Heinz schrieb:> Den Beitrag> Beitrag "Re: AVR Studio - altes Projekt neu compilieren"> hast du gesehen?
Danke, war zwischen den Postings untergegangen.
Friedrich schrieb:> Es sieht so aus, als wäre bei dir kein WinAVR installiert (das letzte> WinAVR_ 20100110 hat GCC 4.3.3 und liegt eben meist an den beschriebenen> Stellen).> Bei dir sieht es so aus, als hättest du mal oder hast noch ein neueres> Atmel Studio (6?) installiert. Ich meine da verwendet Atmel mittlerweile> eine eigene Toolchain.>> Ich glaube nicht, dass du dein "altes" Projekt (von wann eigentlich?)> damals mit dem GCC 4.5.1 kompiliert hast.
Bin auch grade verwundert.
Unter Help/About AVR-Studio/Version steht:
AVR Studio
GUI Version 4.19.0.720
...
Plugins:
...
AVRPluginavrgccplugin 1,0,0,11
Atmel Studio (6) war mit Sicherheit nie installiert.
Auf dem besagten Rechner befindet sich noch die Datei
WinAVR-20100110-install.exe
und die Datei
WinAVR-20081205-install.exe
In wie weit die mal installiert waren, kann ich nicht sagen.
Ich würde da jetzt an deiner Stelle erst mal nichts angreifen oder
umkonfigurieren, sondern das Projekt auf den Rechner kopieren und
versuchen, das mit dem vorhandenen AVR-Studio zu compilieren.
Danach vergleichst du das dabei entstehende Hex-File mit dem was du
(hoffentlich) noch hast. Wenn die identisch sind, stehen die Chancen
gut, dass du die Konfiguration hast, mit der das Programm damals gemacht
wurde.
Karl Heinz schrieb:> Danach vergleichst du das dabei entstehende Hex-File mit dem was du> (hoffentlich) noch hast.
Gute Idee!!!
Karl Heinz schrieb:> Ich würde da jetzt an deiner Stelle erst mal nichts angreifen oder> umkonfigurieren, sondern das Projekt auf den Rechner kopieren und> versuchen, das mit dem vorhandenen AVR-Studio zu compilieren.
Also im Klartext, WinAVR-20100110-install.exe installieren, dann das AVR
Studio 4.19 installieren und damit dann das Projekt starten und das hex
erzeugen!?!
Karl Heinz schrieb:> Ich würde da jetzt an deiner Stelle erst mal nichts angreifen oder> umkonfigurieren, sondern das Projekt auf den Rechner kopieren und> versuchen, das mit dem vorhandenen AVR-Studio zu compilieren.
Nein, lies doch mal was da steht...
Wenn du ein altes HEX File zum Vergleichen hast, dann einfach mal so wie
alles eingestellt ist, versuchen zu kompilieren und die HEX Files
vergleichen z.B. mit WinMerge... dann siehtst du ja, ob dein altes HEX
mit dem gleichen GCC gemacht wurde, oder zumindest ob das selbe
rauskommt.
Dann kannst du auch Änderungen machen und die dann übersetzen.
Wo auch immer dein GCC 4.5.1 herkommt... das WinAVR_20100110 ist das
letzte WinAVR, das veröffentlich wurde und das enthält den avr-gcc in
Version 4.3.3.
Die Installationsdatei hast du ja anscheinend, aber es sieht ja so aus,
als wäre es nicht installiert.
Von wann ist denn dein "altes" Projekt, dass man da mal eine
Einschätzung hat...
Aber selbst wenn es nicht der gleiche gcc ist, solange es fehlerfrei
kompiliert und das macht, was es soll...
Ist die Anwendung privat oder kommerziell?