Forum: Mikrocontroller und Digitale Elektronik AtmelStudio6 Problem Simulation


von Steffen (Gast)


Lesenswert?

Hallo,

ich habe mir frisch das AtmelStudio6 installiert (bisher 
AVRStudio4-fan).

Jetzt habe ich zum testen einfach die Display-Ansteuerung von der Seite 
hier verwendet.
(http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung)

Kurz die lcd-routines.c und lcd-routines.h dazu erstellt. Das Beispiel 
eingefügt und kompiliert.

Keine Fehler alles gut, hat nicht gemeckert.

Wenn ich nun mit dem Simulator starte (Start Debugging and Break) bleibt 
er auch schön bei "Main" stehen.

Nun mache ich mit F11 (Einzelschritt) einen Step vorwärts.

Anstatt dann aber in die "lcd_init();" zu springen und im 
"lcd-routines.c" den Code abzuarbeiten, überspringt er einfach den 
Aufruf und geht zum nächsten Codeteil weiter.

So überspringt er aber alle Aufrufe?

Was mache ich falsch? Im AVRStudio4 wechselt er schön in die 
"lcd-routines.c" und arbeitet die "lcd_init();" ab.

Auch mit den anderen Step-Buttons überspringt er jedes mal den Aufruf?

Hier ein Teil des Codes:

int main(void)
{
  lcd_init();  <- wird einfach übersprungen anstatt dorthin springen
  ...
}



Ich hoffe ihr könnt mir helfen.

Vielen Dank,

Grüße Steffen

von Stefan F. (Gast)


Lesenswert?

Vermutlich hast Du vergessen, den Optimizer zu deaktivieren, durch die 
Compiler Option -O0. Optimierter Code kann stark vom Quelltext 
abweichen, so dass der Debugger damit nicht mehr klar kommt.

von Steffen (Gast)


Lesenswert?

Hallo,

habe nach etwas Probieren das Problem gefunden. :)

Danke für die Info der Optimierung.


Lösung:
Beim AtmelStudio6 kann man das Verhalten des Simulators auswählen.
Habe das Menu als Anhang dabei.

Hier muss ausgewählt werden: "Erase entire ehip" (roter Kasten).
Zuvor hatte ich "Skip programming".

Jetzt läuft der Debugger wie gewollt Schritt für Schritt und springt 
auch.


Vielen Dank,
Grüße Steffen

von Martin K. (maart)


Lesenswert?

Steffen schrieb:
> Lösung:
> Beim AtmelStudio6 kann man das Verhalten des Simulators auswählen.
> Habe das Menu als Anhang dabei.

Ich sehe nichts.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

sorry hab den Anhang vergessen.

Jetzt müsste dabei sein.

Grüße Steffen

von Martin K. (maart)


Lesenswert?

Der rote Kasten hat aber auch rein gar nichts mit dem Simulator zu tun.
Da kannst du einstellen, wie der Controller programmiert werden soll.

von Steffen (Gast)


Lesenswert?

Hallo,

@Martin Kreiner:
Genau das habe ich auch gedacht.
Die Einstellung bezieht sich aber tätsächlich auf "Selected 
debugger/programmer". Probier es aus.

Ist "Skip Programming" eingestellt so überspringt der Simulator Aufrufe 
etc. Bei "Erase entire chip" arbeitet der Simulator wie gewohnt den Code 
ab. (Wenn "Simulator" ausgewählt ist)

Wenn ich bei "Selected debugger/programmer" mein STK500 auswähle habe 
ich eh immer "Erase entire chip" drin. Was bei der anderen Einstellung 
passiert habe ich noch nicht ausprobiert.

Mich Stört eh, dass es keinen Button wie beim AVRStudio4 gibt um mit 
einem Klick programmieren zu können. :(


Wenigstens kann ich jetzt normal meinen C-Code testen.
Ich denke dieser Thread ist für andere AtmelStudio6-Nutzer auch 
interessant. :)

Grüße Steffen

von Martin K. (maart)


Lesenswert?

Steffen schrieb:
> Ist "Skip Programming" eingestellt so überspringt der Simulator Aufrufe
> etc. Bei "Erase entire chip" arbeitet der Simulator wie gewohnt den Code
> ab. (Wenn "Simulator" ausgewählt ist)

Da sage ich mal: "It's not a feature, it's a bug.



Steffen schrieb:
> Mich Stört eh, dass es keinen Button wie beim AVRStudio4 gibt um mit
> einem Klick programmieren zu können. :(

Gibt es zwar nicht direkt, man kann aber als "Debugger" das 
Programmiergerät einstellen. Wenn du jetzt auf "Start debugging" klickst 
oder F5 drückst, wird zwar nichts debuggt, der Code aber auf den 
Controller geladen.

von Steffen (Gast)


Lesenswert?

Danke für die Info. :)
Das werd ich mal probieren.


Allerdings kommt man damit immernoch nicht an das AVRStudio4 ran. :(

Da ist das schön getrennt. Ein Button zum Simulieren des Codes ("Build 
an Run". Ein Button zum nur Ersttelen des Codes und ein Button zum 
Programmieren.
Ich glaub ich bleib doch beim 4er.

Nach meiner Meinung sind die Nachfolger nur schlechter geworden.

Allerdings markiert das AtmelStudio6 den Text besser und schöner in 
Farben.
Ein Mix aus beiden wäre toll...


Grüße Steffen

von Stefan F. (Gast)


Lesenswert?

Ich benutze Netbeans zum Editieren, Makefiles+Avrdude zum Compilieren 
und Flashen. AVR Studio nutze ich nur noch zum Debuggen. Für den alten 
Dragon tut's das alte AVR Studio 4.19 immer noch prima.

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.