Atmel Studio 7 Simulator Debug

Gast #5108954
Lesenswert?
• ▲
▼
Hey Leute,

langsam halte ich mich für blöde. Einmal mein seeehr winziges Programm:
1
#define F_CPU 8000000UL
2

3
#include <avr/io.h>
4

5
int main(void)
6
{
7
  uint8_t count = 0;
8
    while (1) 
9
    {
10
    count++;
11
    }
12
}
Nutze das Atmel Studio 7, als Ziel ist nen ATtiny9 gewählt und als 
Debugger der Simulator. Wenn ich die Simulation starte hängt er an der 
öffnenden Klammer von der Main fest und kommt einfach nicht weiter. Gibt 
es da irgend welche Magic Einstellungen die man setzen muss? Hatte 
Damals nur das 6er Studio, da musste ich meines Wissens nichts extra 
einstellen.

Liebe Grüße
Gast #5109096
Lesenswert?
• ▲
▼
Ich denke du meinst das lss-File oder? In der Tat habe ich da noch nicht 
nachgeschaut, hätte ich auch drauf kommen können. Und die Schleife wurde 
tatsächlich wegoptimiert, die main besteht nur noch aus nem jump zum 
Exit. Hätte gedacht die Optimierung wäre bei nem Debug-Build automatisch 
aus, aber so kann man sich irren. Habe sie nun ausgestellt und siehe da, 
es geht, vielen Dank!

Eine Frage aber noch: Ich kann bei der Optimierung eine der Stufen 1 - 3 
wählen oder 0 für aus, bzw. g für 'Debugging experience'. Wie kann ich 
mir die Optimierung bei dem Wert -Og vorstellen?

Liebe Grüße
#5110273
Lesenswert?
• ▲
▼
Donni D. schrieb:
> Eine Frage aber noch: Ich kann bei der Optimierung eine der Stufen 1 - 3
> wählen oder 0 für aus, bzw. g für 'Debugging experience'. Wie kann ich
> mir die Optimierung bei dem Wert -Og vorstellen?

-Og sorgt unter anderem dafür, dass völlig unnötige Load- oder 
Store-Operationen von bzw. auf den Stack wegoptimiert werden. Ansonsten 
entspricht wie bei -O0 der generierte Assembler ziemlich exakt dem 
C-Code, also keine Optimierungen, wie Inlining o.Ä.. Ich persönlich 
finde den generierten Assembler mit -Og deutlich besser lesbar als mit 
-O0, weil der Assembler auf das wesentlichste konzentriert ist. -Og gibt 
es aber erst ab GCC 5.

Hier mal ein ganz knappes Beispiel mit einem GCC-ARM:
https://godbolt.org/g/yEku3P

Das Beispiel ist natürlich etwas konstruiert und in der Realität hat man 
eher nicht so knappe (und überflüssige) Funktionen aber wenn man das mal 
auf -O0 stellt, dann erkennt man sofort den Vorteil von -Og.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.