www.mikrocontroller.net

Forum: Compiler & IDEs AVR Studio Simulation


Autor: Andreas Meissner (burns)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich setze AVR Studio V4.18 ein auf einem meiner Rechner ein. Habe dazu 
das WinAVR installiert um das Programm (in C geschrieben) zu simulieren. 
Beim Compelieren wird auch soweit kein Fehler festgestellt und der gelbe 
Pfeil steht bei der ersten geschweiften Klammer welche die Mainfunktion 
eröffnet. Will ich nun mit F11 weiter auf den nächsten Befehl so springt 
der gelbe Pfeil zum Ende der Mainfunktion (gescheifte Klammer) ohne die 
Befehle scheinbar abzuarbeiten.

Ich habe noch einen anderen Rechner wo AVR Studio V4.10 drauf ist und da 
läuft es wirklich jeden Befehl nacheinander ab.

Was mache ich hier falsch und kann man mir helfen?




Ich hatte auch schon mal an der Optimierung rum gespielt aber bisher 
ohne erfolg im Moment steht es auf -O1 unter den Eigenschaften.

Hier auch mal das Programm (nicht nach dem Sinn fragen ist nur zum 
Test):

#include <avr/io.h>

int main (void)

{

int test,test1,test2;


test1=5;
test2=3;


test=test1+test2;


return (0);


}

Autor: Andreas Meissner (burns)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK habe es gefunden

Optimierung auf "-os" stellen dann gehts. war das einzigste was ich 
nicht probiert hatte. :-(

Autor: Kasperle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/io.h>

int main(void)
{

   int test, test1, test2;


   test1 = 5;
   test2 = 3;

   test = test1 + test2;

  while(1)
  {

  }

}

Gruß

Autor: Andreas Meissner (burns)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe es mal mit der schleife versucht, das brachte aber nicht den 
Erfolg das ich nun jeden Befehl einzeln abarbeiten konnte mit der alten 
Optimierungseinstellung.


Danke trotzdem

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Compiler erkennt (durchaus richtig), daß alles, was du da mit test1, 
test2 und test3 anstellst, im Endeffekt völlig wirkunsglos ist, und 
optimiert das dann alles weg.

Oliver

Autor: Andreas Meissner (burns)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das verstehe ich jetzt nicht. Der Compiler kann doch nicht einfach die 
Rechenoperation als sinnlos deklarieren ...???? oder doch weil es nicht 
weiter verwendet wird ...?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Meissner schrieb:
> Das verstehe ich jetzt nicht. Der Compiler kann doch nicht einfach die
> Rechenoperation als sinnlos deklarieren ...????

Natürlich kann er.

> oder doch weil es nicht
> weiter verwendet wird ...?

Ganz genau.
Wozu etwas ausrechnen, wenn mit dem Ergebnis nichts passiert?

Wenn du deine Steuererklärung machst, kannst du natürlich auch eine 
Tabelle aller Quadratzahlen von 1 bis 1 Million nebenher ausrechnen. Nur 
interessiert das Finanzamt deine Zusatzaufgabe herzlich wenig. Wenn du 
daher deine Steuererklärung möglichst schnell hinter dich bringen 
willst, bist du gut beraten, diese Fleissaufgabe nicht zu machen.

Von ausserhalb verhält sich dein µC genau gleich, egal ob er was 
ausrechnet oder nicht. Nur gehts schneller, wenn er nichts ausrechnet.


Der Compiler darf optimieren, wie er lustig ist. Einzige Vorgabe: am 
beobachtbaren Verhalten des Programms darf sich nichts verändern. Das 
'beobachtbare Verhalten' definiert sich aber hauptsächlich dadurch, was 
auf Ein/Ausgabe-Kanälen passiert.

Autor: Andreas Meissner (burns)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Aufklärung :-)

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.