Forum: Mikrocontroller und Digitale Elektronik AVR Studio - altes Projekt neu compilieren


von g_reichert (Gast)


Lesenswert?

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!

von Mr. Tom (Gast)


Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

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)

von Peter II (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

g_reichert schrieb:
> Das Ende vom Lied ist, dass das AVR-Studio
> wohl deswegen nicht startet.

sehr unwahrscheinlich.

von Friedrich (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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"

von g_reichert (Gast)


Lesenswert?

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?

von Friedrich (Gast)


Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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 :-)

von g_reichert (Gast)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

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.

: Bearbeitet durch User
von Friedrich (Gast)


Lesenswert?

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.

von g_reichert (Gast)


Lesenswert?

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?

von g_reichert (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

g_reichert schrieb:
> 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

Das wirst du dort auch nicht finden.

WinAvr heisst die Adaption des gcc für AVR.

Den Beitrag
Beitrag "Re: AVR Studio - altes Projekt neu compilieren"
hast du gesehen?

: Bearbeitet durch User
von g_reichert (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

: Bearbeitet durch User
von g_reichert (Gast)


Lesenswert?

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!?!

von Friedrich (Gast)


Lesenswert?

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?

von Harry (Gast)


Lesenswert?

Hallo,

du hattest höchstwahrscheinlich dieses (oder ein ähnliches) 
Komplettpaket hier installiert:

http://distribute.atmel.no/tools/avr/beta/4.19%20Build720/AvrStudio4Setup.exe



s.a. hier:

Beitrag "AVR Studio 4 installieren"

von Harry (Gast)


Lesenswert?

Harry schrieb:
> du hattest höchstwahrscheinlich dieses (oder ein ähnliches)
> Komplettpaket hier installiert:

Da lag ich falsch. Hier findet sich die Auflösung:

Beitrag "AVR-Studio4 - wie kann man rausfinden, welche Toolchain eingebunden ist?"


Erst
avr-toolchain-installer-3.2.3.579-win32.win32.x86.exe
installieren (erzeugt die AVR_8_bit_GNU_Toolchain_3.2.3_314)
Hier kann man sie downloaden:
http://www.mikrocontroller.net/articles/Atmel_Studio

Dann AVR-Studio4.19 installieren und alles sollte passen!
:O)

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.