Forum: Mikrocontroller und Digitale Elektronik debuggen mit AVR-Studio6


von Azubi (Gast)


Lesenswert?

Hallo


Ich versuche gerade einen einfachen Code mit Avr-Studio 6 zu debuggen,
aber ich vermisse diesen "gelben Pfeil" wie in AVR-Studio 4.
Kann mir einer sagen wie ich das einstellen muss damit ich den Pfeil 
habe?

hier ist auch der simple code falls ihn jmd sehen will:


#include <avr/io.h>
#include <util/delay.h>


int main(void)
{
  #include <avr/io.h>

  int main(void)
  {
    while(1)
    {
        DDRD = 0xFF;
        PORTD = 0x0F;

    }
  }



}

von Fabian K. (fabian_k)


Angehängte Dateien:

Lesenswert?

Du meinst den hier (siehe Bild) (:

Ich glaube du hast die Build-Konfiguration auf "Release" gestellt, dann 
hast du den "gelben Pfeil" im C-Code nur sporadisch (oder auch gar 
nicht?), weil die Compiler-Optimierungen auf "Optimize for size" gesetzt 
sind.

Gehe zu "Build" / "Configuration Manager ..." und wähl bei
"Active solution configuration", "Debug" aus.

Jetzt müsste beim Debuggen schonmal der Pfeil da sein.

Die Compiler-Optimierungen (Standardeinstellung ist "Optimize (-O1)" bei 
Debug), würde ich außerdem beim Debuggen auch komplett Deaktivieren:

Gehe zu "Build" / "Configuration Manager ..." und wähl bei
"Active solution configuration", "Debug" aus (falls nicht schon vorher 
gemacht).

Dann ge zu "Project" / "Properties" / links "Toolchain" / "Optimization" 
/"Optimization Level", "None (-O0)" aus.

Dann mal alles Speichern und neu compilieren.


Wenn der Code noch vom Timing her richtig sein soll, musst duch auch 
noch ein F_CPU im Hz definieren (bevor du delay.h inkludierst), 
ansonsten wird standardmäßig 1Mhz genommen.
Auszug von delay.h:
1
#ifndef F_CPU
2
/* prevent compiler error by supplying a default */
3
# warning "F_CPU not defined for <util/delay.h>"
4
# define F_CPU 1000000UL
5
#endif

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Fabian K. schrieb:
> Die Compiler-Optimierungen (Standardeinstellung ist "Optimize (-O1)" bei
> Debug), würde ich außerdem beim Debuggen auch komplett Deaktivieren

Ich nicht.  Du debuggst dann einen völlig anderen Code als den, den
du später benutzen willst, und bestimmte Bugs (bspw. ein vergessenes
“volatile”) tauchen dann einfach nicht auf.

Es ist meiner Erfahrung nach sinnvoller, sich an das Debuggen von
optimiertem Code zu gewöhnen, auch wenn es scheinbar willkürlich und
wild hin und her springt.

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.