Simulationsproblem über Konsole

OP #2588250
Lesenswert?

Ich will eine Zeiterfassung für eine Rennstrecke schreiben 
(Start/Zielzeiten). Bevor ich mir das teure Equipment leiste, will ich 
eigentlich vorher das ganz Programm mal über ne Konsole testen. Wie kann 
ich das denn simulieren? Oder kann ich sogar den Controler selbst 
simulieren? Das AVR-GCC Tutorial gibt da leider auch nichts drüber her.
OP #2588298
Lesenswert?

Hab mich jetzt für den Simulator im AVR Studio entschieden. Zuerst 
wollte ich mal den Simulator testen, mit folgendem Programm:

#include <avr/io.h>

int main(void)
{
  int a,b,c=0;
  a=0;
  b=5;
    while (a<b)
    {
    a++;
    c=a+b;
  }
}
Ich habe mir (ab der while Schleife) in jede Zeile nen Break-Point 
gesetzt, allerdings reagiert der Debugger nicht auf diese. Der gelbe 
Pfeil springt direkt auf die letzte Zeile. Why?
#2588380
Lesenswert?

mach halt irgendwas mit dem Ergebnis, so dass es nicht wegpoptimiert 
werden kann. Zb auf einem Port ausgeben. Dein Programm ist mommentan 
ziemlich sinnlos, der Compiler merkt das und optimiert so ziemlich alles 
weg.

Den Pfeil kannst du nicht dorthinsetzen, weil von deinem Programm in der 
Ausführung nichts mehr übrig bleibt.

1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  int a,b,c=0;
6

7
  DDRB = 0xFF;   // kompletrten Port D auf Ausgang setzen
8

9
  a=0;
10
  b=5;
11

12
  while (a<b)
13
  {
14
    a++;
15
    c=a+b;
16

17
    PORTD = c;   // und c auf dem Port D ausgeben
18
  }
19
}

Jetzt kann er zumindest nicht mehr alles wegoptimieren, weil die Ausgabe 
auf dem Port erfolgen MUSS.

Entweder das oder du schaltest die Optimierung ab.
Persönliche Seite #2589494
Lesenswert?

Karl Heinz Buchegger schrieb:

> Den Pfeil kannst du nicht dorthinsetzen, weil von deinem Programm in der
> Ausführung nichts mehr übrig bleibt.

Ganz am Rande: Das hat eigentlich nix miteinander zu tun:

Ob der Code optimiert wurde oder nicht — solange die entsprechende 
Debug-Infos

1) erzeugt werden

und

2) adäquat vom Debugger verarbeitet werden

kann man Pfeil auch dorthin setzen, wo der Code wegoptimiert ist (weil 
die entsprechende Debug-Info nämlich noch da ist und ausgewertet wird). 
Oder man kann sich den Wert wegoptimierter Variablen anzeigen lassen.

1) ist für GCC der Fall — vorausgesetzt, man bedient ihn richtig

2) ist für den AVR-Studio-Debugger offenbar nicht gegeben.
   Was verwundert, da die neue 5-er Version doch sooo viel
   Neuerungen bringen soll...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren