www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OSX-AVR-Template macht Probleme!


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
i = 0;
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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.