Hi ich habe paar c files von Xmega nach ARM portiert, und jetzt sehe ich versciedene Probleme je nach dem welchen Optimisation level ich auswähle. Alle Optimierungen sind an. Alles ok wenn ich für "size" auswähle. Nicht ok wenn ich für "Speed" oder balanced auswähle! Eine Idee wo nach ich suchen soll? Thx
H. R. schrieb: > und jetzt sehe ich versciedene Probleme Was ist das? Welcher Art sind die Probleme?
Rufus Τ. F. schrieb: > Was ist das? Welcher Art sind die Probleme? ich steuere ein LED display und die LEDS machen nicht imer das was sie tun sollen. Ich musste scon verstehen was der optimiser tut. Ich habe zusätzlich mit stabilität von LWIP zu kämpfen-> statistischer bug
H. R. schrieb: > und jetzt sehe ich > versciedene Probleme je nach dem welchen Optimisation level ich > auswähle. "verschiedene Probleme" ist nun nicht so wirklich eine erschöpfende Fehlerberschreibung. Da könntest Du ruhig ein wenig spezifischer werden. Wenn Code bei höheren Optimierungsstufen nicht mehr das macht, was er soll, ist das meist ein Programmierfehler. Naheliegend wäre ein vergessenes volatile (aber nur an der richtigen Stelle, nicht einfach mit der Gießkanne) oder eine wegoptimierte Warteschleife.
Und wenn der Code bei unterschiedlichen Optimierungsstufen nicht mehr das macht, was er soll, ist das auch meistens ein Programierfehler, nur ein nicht so offensichtlicher. Wenn es mit -s geht, it den anderen Stufen jedoch nicht, kann es auch noch mit der erzeugten Programmgröße zusammenhängen. Oliver
nicht initialisierte lokale Variablen sind auch beliebt. Einfach mal CppCheck auf den Code loslassen.
Nop schrieb: > nicht initialisierte lokale Variablen sind auch beliebt. Einfach mal > CppCheck auf den Code loslassen. Hmm. Nicht initialisierte lokale Variablen sind - unabhängig von der Optimierung - doch immer nicht initialisiert?
Wahrscheinlich ist das Originalprogramm schon nicht portabel geschrieben und läuft nur zufällig richtig auf einem XMega. Wie wäre es mit dem Sourcecode hier? Es gibt genug Leute denen es Spass macht, den Code zu zerpflücken.
Markus F. schrieb: > Nop schrieb: >> nicht initialisierte lokale Variablen sind auch beliebt. Einfach mal >> CppCheck auf den Code loslassen. > > Hmm. Nicht initialisierte lokale Variablen sind - unabhängig von der > Optimierung - doch immer nicht initialisiert? Was Nop damit sagen wollte: es kommt im Eifer des Gefechts hin und wieder vor, dass man lokale Variablen benutzt, so, als haetten sie bereits einen bestimmten Wert; der aber nur im Kopf des Programmierer existiert.
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.