www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kleiner Tip zum Simulieren mit AVR-Studio! Ein paar Schritte zurück


Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, mich hat es immer schon genervt das ich beim Simulieren jedesmal 
bei einem Fehler das Programm von neuem durchsimulieren musste, gerade 
wenn man mit externen Interrupts arbeiten und immer die Pins 
aktivieren/deaktivieren muss um einen Interrupt auszulösen.

Dann habe ich mit Sprungmarken gearbeitet um durchgetestete 
Programmteile zu überspringen oder mit Broakponts um an bestimmten 
Stelle anzuhalten.

Das eigentlich Problem war aber, das man bei einem Fehler, trotzdem 
nochmal das Simulieren neustartet, um wieder an die Fehlerstelle 
zukommen. Hier wäre es nicht schlecht gewesen wenn man einfach mal 
einige Schritte im Programm zurück könnte.

Nun bin ich aber auf die Idee gekommen einfach den Programmcounter zu 
manipulieren. Ich merke mir also den Programmcounter an einer Stelle vor 
dem Fehler und wenn ich am Befehl mit einer unerwünschten Aktion vorbei 
geschlittert bin, setze ich den Programmcounter an die gemerkte Adresse 
und der gelbe Pfeil im Simulator geht wieder ein paar Schritte zurück.

Könnte das per JTAG auch funktionieren, habe JTAG noch nicht ausprobiert 
aber da die Sachen immer umfangreicher werden, wäre es schön das ganze 
in einer richtigen Umgebung testen zu können.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und Simulator oder JTAG habe ein so gutes Gedächtnis, daß sie alle 
Registerwerte, I/O-Werte, Speicherwerte an jedem von Dir gewünschten 
PC-Stand mal schnell wieder passend setzen?

Das bezweifle ich mal...
Das müßtest Du dann wohl selbst machen, wenn das Ganze einen Sinn haben 
soll.

So hat es nämlich garkeinen Sinn.

Gruß aus Berlin
Michael

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei die Idee eigentlich so genial ist, dass man so einen 'Verlauf' 
gleich einbauen müsste, finde ich. Vielleicht auch direkt in GDB oder 
so.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Sven P. schrieb:
> Wobei die Idee eigentlich so genial ist, dass man so einen 'Verlauf'
> gleich einbauen müsste, finde ich. Vielleicht auch direkt in GDB oder
> so.

Was letztlich heißen würde, jeden ausgeführten Befehl mit seinen 
Veränderungen ab Register/Ram/IO/Flags zu protokollieren.
Oder eben das Programm jedesmal von vorn laufen zu lassen und nur 
automatisch die vom User gesetzten externen Änderungen abzuarbeiten.

Klappt aber spätestens bei echter Hardware und JTAG nicht mehr.

Gruß aus Berlin
Michael

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo klar, aber aufm PC wär sowas machnmal schon hilfreich, finde ich. Ich 
mein, Speicher hat man im Zweifelsfall genug, selbst wenn mans z.B. nur 
auf C-Ebene protokolliert. Würde grad bei langwierigen Programmen 
helfen, wo man nach dem Neustart z.B. immer wieder dieselben Aktionen 
durcharbeiten müsste (Menüs, Eingaben...). Lässt sich nich immer alles 
automatisiern...

Autor: retreti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch einfach rechtklick machen und "set next statement" oder 
so anklicken. das geht genausogut ;-)

ja es geht auch mit JTAG, das ist wie im simulator + besser :-D

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.