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?
Gast
#5097026
H. R. schrieb: > Eine Idee wo nach ich suchen soll? Setz einfach den Compilerswitch.
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
Gast
#5097337
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?
Gast
#5097801
Schau in Zeile 42!
Gast
#5097863
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.