OSX-AVR-Template macht Probleme!

Gast #791733
Lesenswert?

Hi @all,

ich habe OSX-AVR installiert und die mitgelieferten Templates in XCode 
importiert. Anschließend habe ich eine kleine Software zum Testen 
geschrieben. Diese beinhaltet u.A. eine WHILE-Schleife, um eine 
zeitliche Verzögerung hinzubekommen:
1
i = 0;
2
while (i < 64000) i++;

Wenn ich das Ganze nun über BUILD erstelle und das Hexfile in den Chip 
schiebe, wird diese Zeitangabe offensichtlich übersprungen. Ich habe das 
Hexfile dann ins AVR Studio importiert und mir das mal angesehen - die 
Schleife fehlt im Code! Die Aktion NACH der Schleife wird direkt im 
nächsten Schritt nach der Aktion VOR der Schleife ausgeführt! Was ist da 
denn los?!

Ich habe dann mal den C-Code ins AVR Studio importiert und dort 
erstellt. Effekt: Die Schleife wird mitkompiliert und somit auch 
ausgeführt.

Warum wird die Schleife in XCode ignoriert und im AVR Studio umgesetzt?


Viele Grüße und danke für jede Art von Antwort!
Andi
Gast #791741
Lesenswert?

Das nennt man OPTIMIERUNG, OP-TI-MIER-UNG.

Der Compiler merkt, dass diese Schleife effektiv Nutzlos ist und lässt 
sie halt aus.

Schreib bei der Vereinbarung von i mal "volatile int i;" oder pack ein
> asm volatile ("nop");
in die Schleife rein.
Gast #792156
Lesenswert?

Herrlich, ich habs mir fast gedacht. Der Optimierungsgrad im MAKEFILE 
ist so eingestellt, dass das Programm die kleinstmögliche Größe 
bekommt... Ich probier da mal n bisschen rum, man kann das reduzieren 
bis auf "keine Optimierung".

Vielen vielen Dank für den Tipp!
Andi

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