Forum: Compiler & IDEs IAR & ARM M4 & optimisation Probleme


von H. R. (hacker_r)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

H. R. schrieb:
> und jetzt sehe ich versciedene Probleme

Was ist das? Welcher Art sind die Probleme?

von Nop (Gast)


Lesenswert?

H. R. schrieb:

> Eine Idee wo nach ich suchen soll?

Setz einfach den Compilerswitch.

von H. R. (hacker_r)


Lesenswert?

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

von Markus F. (mfro)


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.

von Oliver S. (oliverso)


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

von Nop (Gast)


Lesenswert?

nicht initialisierte lokale Variablen sind auch beliebt. Einfach mal 
CppCheck auf den Code loslassen.

von Markus F. (mfro)


Lesenswert?

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?

von Besserwisser (Gast)


Lesenswert?

Schau in Zeile 42!

von PittyJ (Gast)


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.

von Mehmet K. (mkmk)


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.

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.