Forum: Compiler & IDEs Simulavr: Zyklen anzeigen


von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo,

ich verwende GDB 5.3 mit der neuesten simulavr-Version (CVS). Um die
Ausführungszeit eines Programmes zu messen würde ich gerne die Anzahl
der im Simulator abgelaufenen Taktzyklen wissen, aber ich habe leider
nirgendwo eine Option dafür gefunden. Kann mir jemand weiterhelfen?

Danke
Andreas

von Joerg Wunsch (Gast)


Lesenswert?

Wenn Du nichts findest, frage mal Ted Roth selbst.

von Joerg Wunsch (Gast)


Angehängte Dateien:

Lesenswert?

Guck Dir das da mal an.  Ich update den Zähler nur alle 64 Takte,
damit es nicht zu schlimm auf die Performance schlägt.  Ist alles
nicht so toll mit dem display coprocess, die printf/scanf-erei
da ist ja genauso schlimm wie beim Linux procfs... ;-)  Man sollte
das Protokoll wohl auf binäre datagrams umstellen.

Die Initialisierung von RAMPZ braucht's bei mir, weil sich der
Simulator ansonsten mit dem Zufallswert in RAMPZ während der
C-Initialisierung mit einer ungültigen Speicheradresse verabschiedet.
Man sollte stattdessen wohl RAMPZ richtig implementieren, aber mir das
anzutun, bin ich gerade zu faul.

Wenn's Dir gefällt, können wir es Ted ja anbieten.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Danke, das ist genau das was ich brauche. Der Patch läuft mit der
aktuellsten Version zwar nicht ganz so durch wie er sollte, und RAMPZ
gibt's in der Struktur core nicht mehr, aber nach ein bisschen
Handarbeit funktioniert alles wie gewünscht. Was mir dabei aufgefallen
ist: in der aktuellen avrcore.c wird in avr_core_CK_incr() eine
Funktion namens display_clock( core->CK ); aufgerufen, es scheint also
dass eine ähnliche Funktionalität für simulavr-disp bereits eingeplant
ist.

von Joerg Wunsch (Gast)


Lesenswert?

Oha, dann sollte ich mir mal die aktuellen Quellen ansehen.

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.