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ß
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.
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!?!
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...
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.
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.
Merke: Warnungen zur Compilezeit sind leicher zu beheben als Fehler zur Laufzeit :-)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.