IAR & ARM M4 & optimisation Probleme

OP #5096897
Lesenswert?

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
#5097135
Lesenswert?

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.
#5097268
Lesenswert?

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 #5097863
Lesenswert?

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.
#5097919
Lesenswert?

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.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren