mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Registeranzeige durch simulavr?


Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin noch ein Anfänger und hab ne vermutlich ziemlich blöde Frage. Ich 
habe ein erstes Assemblerprogramm geschrieben und mit avra kompiliert. 
Danach habe ich es mit simulavr ausgeführt. Allerdings hängt es dann in 
einer Endlosschleife mit der Ausgabe "decoder.h:59: WARNING: Unknown 
opcode: 0xffff" und zu allem Übel kann ich nicht mal sehen, ob es das 
Richtige tut. Gibt es eine Möglichkeit, sich die Register anzeigen zu 
lassen? Ich hab simulavr-disp zwar schon gefunden, aber ich weiß nicht 
wie man es benutzt und komme mit dem, was sich per Google finden, lässt 
nicht wirklich zurecht. Vielleicht kann mir ja jemand sagen, wie ich am 
einfachsten die Endregister nach Programmende zur Anzeige bringen kann.

Vielen Dank!

P.S. Verwende Ubuntu 8.10, avra und möchte einen ATmega16 simulieren.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und möchte einen ATmega16 simulieren.

Wozu? Programmiere ihn und probiere es am
realen Objekt aus. Simulatoren tun nicht immer
das was man erwartet.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich besitze keinen. Daher muss ich notgedrungenermaßen auf den Simulator 
ausweichen.

Hast du eine Ahnung wie sich o.g. bewerkstelligen lässt?

Grüße, Florian

Autor: stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das sieht so aus als würde jemand (Dein Simu) das ENDE des Programmes 
vermissen..

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian wrote:
> Hallo,
>
> bin noch ein Anfänger und hab ne vermutlich ziemlich blöde Frage. Ich
> habe ein erstes Assemblerprogramm geschrieben und mit avra kompiliert.
> Danach habe ich es mit simulavr ausgeführt. Allerdings hängt es dann in
> einer Endlosschleife mit der Ausgabe "decoder.h:59: WARNING: Unknown
> opcode: 0xffff" [...]

Oje... simulavr.

Welches Object-Format verwendest du denn? simulavr möchte glaub 
bin-Files haben, wenn er direkt aufgerufen wird. Bei dir schein schon 
das Object nicht korrekt zu sein.

Over verwendest du ihn als avr-gdb server? Dort müsste (bei richtigen 
o-Format) ein "p $r0" den Inhalt von r0 ausdrucken.

simulavr simuliert aber keinen kompletten AVR, die meisten SFRs werden 
nicht unterstützt, d.h. (interne) Peripherie kann man nicht simulieren.

Johann

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja ehh.. auf welche Weise teile ich dem denn mit, dass das Programm 
zuende ist?

.def N    = R16
.def I    = R17
.def TMP  = R18
.def LAST1  = R19
.def LAST2  = R20

.CSEG
.ORG $0000

INIT:  ldi  N, 5
    ldi I, 0
    ldi TMP, 0
    ldi LAST1, 0
    ldi LAST2, 1

LOOP:  cp N,I
    breq END

    mov TMP, LAST2
    add TMP, LAST1
    mov LAST1, LAST2
    mov LAST2, TMP

    inc I,1
    jmp LOOP

END:

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was das ,1 in der Zeile mit dem inc-Befehl soll, weiß ich übrigens auch 
nicht. Habs grad entfernt ;)

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian wrote:
> Tja ehh.. auf welche Weise teile ich dem denn mit, dass das Programm
> zuende ist?

ENtweder durch einen Brechpnkt (vom Debugger aus) oder duch spezielle 
Instruktionen wie brk, break, debug, halt, stop, ... die dein ATmega16 
aber nicht unterstützt. simulavr erlaubt es auch an einer bestimmten 
Adresse zu unterbrechen.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johann L. wrote:
> Welches Object-Format verwendest du denn? simulavr möchte glaub
> bin-Files haben, wenn er direkt aufgerufen wird. Bei dir schein schon
> das Object nicht korrekt zu sein.

Hi Johann,

also avra erzeugt ja eine Reihe von Dateien. simulavr gebe ich das 
Hexfile zu fressen, da ich dachte, dass auch dies dasjenige ist, welches 
geflasht würde. Ist das verkehrt?

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.