Forum: Mikrocontroller und Digitale Elektronik Codevision - Compiler - Problem


von ..,- (Gast)


Lesenswert?

Hallo,

ich hab da ein kleines Problemchen ...

aber zuallererst mal ein paar Infos vorweg.
Ich programmiere normalerweise mit AVR-GCC unter Eclipse/XP das funzt 
auch super. Jetzt hab ich noch nen Rechner rumstehen unter dem eine 
ur-ur-ur-alte kommerzielle Version von CodeVisionAVR/Win98 drauf ist.
Mit dem Codevision/Win98-Rechner wurde damals ein Programm erstellt, 
welches jetzt bisschen modifiziert werden soll ... Migration von 
ATmega128 --> ATmega2561 ... jetzt ist aber der ATmega2561 unter der 
steinalten Version von CodeVision noch gar implementiert =/

Jetzt zum Problem ...
Ich hab mir ein gammliges Netbook geschnappt und da die neueste Version 
von CodeVision installiert und erstmal versucht die alten 
CodeVision-Sourcen mit der neuen Version zu kompilieren, aber das ging 
mal hart gegen den Baum.
Der Compiler meckert über all mögliche Sachen rum ... aber eigentlich 
nur über fehlende globale Variablen. Aber mit dem 
CodeVision/Win98-Rechner macht er es ohne zu meckern.

Jetzt bin ich nicht so firm in Sachen CodeVision und hätte mal gern 
einen plausiblen Grund dafür gewusst, warum die zu 100% gleichen Sourcen 
nicht mit unterschiedlichen Compilerversionen compiliert werden können. 
Hat sich da was geändert? Kann ich mir nicht vorstellen, oder?

thx4replies
Grüße

von Ignatz-Finn (Gast)


Lesenswert?

..,- schrieb:
> ur-ur-ur-alte kommerzielle Version von CodeVisionAVR/Win98 drauf ist.
> ...
> Der Compiler meckert über all mögliche Sachen rum ... aber eigentlich
> nur über fehlende globale Variablen.
> ...
> Hat sich da was geändert? Kann ich mir nicht vorstellen, oder?

Warum nicht? Kommt halt drauf an wie alt ur-ur-ur-alt denn in 
Versionsnummern ist.

Wenn es nur die Variablen sind, mach sie halt mal global zum 
ausprobieren.

Kann das ev. an den Limitierungen der Testversion liegen? Ich nehme mal 
an, Du hast keine Vollversion gekauft, dann würdest Du nämlich support 
von Codevision bekommen.

Hilft Dir das? Ohne Fehlermeldungen und passendem Source wirds ab jetzt 
schwierig...

IF

von ..,- (Gast)


Lesenswert?

Falls es jemanden interessiert ...

Der alte Compiler war V1 ... der neue ist ja V2.

In V1 compiler  all .C program modules were merged in one .C file and 
this
was compiled.
This is why global variables were visible in all program modules.
But this was not ANSI C.

von Norbert L. (norbert_l64) Benutzerseite


Lesenswert?

..,- schrieb:
> Der alte Compiler war V1 ... der neue ist ja V2.

Leider zu spät gelesen, aber die Codevision-Heavy-User kennen das...

von ..,- (Gast)


Lesenswert?

Ich häng das einfach nochmal mit hier dran ...

Habe die Firmware nun soweit für V2 angepasst ... Globals/Array etc. ...
Aber die neu compilierte Version passt nicht mehr aufn Chip oO
Es wurden halt massig Globals eingebaut, die stellenweise riesig sind 
...
Über Sinn und Zweck darf gestritten werden.

Aber wundern tut es mich schon, dass der alte Compiler auf den Chip 
draufbekommen hat.

Ist da irgendwas bekannt zu den Unterschieden der Code-Size beider 
Compiler-Versionen?

von Ignatz-Finn (Gast)


Lesenswert?

Wie viel größer ist der Code jetzt?

In den Compilereinstellungen kann man auch noch einiges machen (Project 
-> Configure -> C Compiler)

Hab gerade mal ein Programm mit 1.25.3 und 2.03.9 verglichen, ist mit 
der neuen Version etwa 5% kleiner. Allerdings sind da keine grossen 
Arrays drin.

Ist es nicht egal ob die Variablen global oder lokal sind? den Platz im 
Flash verbraucht doch nur die initialisierung der Variable, oder sehe 
ich da was falsch?

IF

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.