Forum: Compiler & IDEs Fehlfunktionen und Fehlermeldung nach Update


von bluesky81 (Gast)


Lesenswert?

Hallo,
ich habe ein WIN-AVR-Update von WinAVR-20050214 auf WinAVR-20100110 
vorgenommen.
Seit dem habe ich nach dem kompilieren bei zuvor funktionierenden 
Programmen diverse Warnungen ("pointer targets in assignment differ in 
signedness") und die LCD-Routine funktioniert nur noch bedingt.
Soll heißen es werden nur vereinzelte Buchstaben angezeigt...
Hat jemand eine Idee was sich in dem WinAVR geändert hat und wie ich 
mein Projekt anpassen kann das es auch mit der aktuellen Version 
funktioniert?
Vielen Dank schon einmal im Vorraus!

Gruß

von Karl H. (kbuchegg)


Lesenswert?

bluesky81 schrieb:

> Hat jemand eine Idee was sich in dem WinAVR geändert hat und wie ich
> mein Projekt anpassen kann das es auch mit der aktuellen Version
> funktioniert?

Die 'Warnungen' und 'Fehler', die die neue Version anmäkelt korrigieren.
Die Probleme waren auch vorher schon in deinem Code, nur wurden sie von 
der vorhergehenden Compilerversion nicht angekreidet bzw. zu 
Optimierungszwecken ausgenutzt.

von bluesky81 (Gast)


Lesenswert?

Es handelt sich lediglich um Warnungen, was ja eigentlich keine 
Auswirkung auf die Funktion haben sollte...
Kann ich sonst auch den alten Compiler zusätzlich installieren und für 
die bestehenden Projekte nutzen, das muß ich diese nicht alle 
anpassen!?!

von gagast (Gast)


Lesenswert?

bluesky81 schrieb:
> Es handelt sich lediglich um Warnungen, was ja eigentlich keine
> Auswirkung auf die Funktion haben sollte...
Das ist nicht ganz so richtig...

if(a=b) gibt auch "nur" eine Warnung...

von Karl H. (kbuchegg)


Lesenswert?

bluesky81 schrieb:
> Es handelt sich lediglich um Warnungen, was ja eigentlich keine
> Auswirkung auf die Funktion haben sollte...

Profis betrachten Warnungen grundsätzlich als Fehler, die korrigiert 
werden müssen.
Und das hat schon seinen Grund. Denn allzuoft hat der Compiler recht und 
die etwas dubiose Stelle, die zu der Warnung geführt hat, ist 
tatsächlich fehlerhaft. Selbst wenn der C-Standard dafür keine 
Fehlermeldung vorschreibt (denn nur dann wird etwas als Warnung 
ausgegeben: Wenn keine Fehlermeldung vorgeschrieben ist)

> Kann ich sonst auch den alten Compiler zusätzlich installieren und für
> die bestehenden Projekte nutzen, das muß ich diese nicht alle
> anpassen!?!

Nochmal:
Nur weil ein älterer Compiler etwas nicht als Fehler oder Warnung 
angemäkelt hat, heißt das nicht dass es deswegen fehlerfrei war.

von Rolf Magnus (Gast)


Lesenswert?

bluesky81 schrieb:
> Es handelt sich lediglich um Warnungen, was ja eigentlich keine
> Auswirkung auf die Funktion haben sollte...

Das ist ziemlicher Unsinn. Wenn es sowieso keine Auswirkungen gäbe, 
könnte man die Warnungen auch einfach weglassen.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Merke: Warnungen zur Compilezeit sind leicher zu beheben als Fehler zur 
Laufzeit :-)

von Peter D. (peda)


Lesenswert?

bluesky81 schrieb:
> Seit dem habe ich nach dem kompilieren bei zuvor funktionierenden
> Programmen diverse Warnungen ("pointer targets in assignment differ in
> signedness")

Der neue AVR-GCC akzeptiert für Strings nur "char" und keinen anderen 
8Bit-Typ, also kein "int8_t", "unsigned char" usw..
Die Warnung kann man also getrost ignorieren.

Da man dann vielleicht wichtige Warnungen übersieht, sollte man sie 
besser beseitigen.
Also alle String-Arrays auf char* umschreiben oder nach (char*) oder 
(void*) casten.


Peter

von Rolf Magnus (Gast)


Lesenswert?

Peter Dannegger schrieb:
> bluesky81 schrieb:
>> Seit dem habe ich nach dem kompilieren bei zuvor funktionierenden
>> Programmen diverse Warnungen ("pointer targets in assignment differ in
>> signedness")
>
> Der neue AVR-GCC akzeptiert für Strings nur "char" und keinen anderen
> 8Bit-Typ, also kein "int8_t", "unsigned char" usw..
> Die Warnung kann man also getrost ignorieren.

Man kann aber auch ganz einfach char verwenden, so wie es in C 
vorgesehen ist. Ich verstehe bis heute nicht, warum so viele bei Strings 
immer so kreativ werden und alle möglichen anderen Typen aus dem Hut 
zaubern, statt den offensichtlichsten zu verwenden.

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.