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

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.