Registeranzeige durch simulavr?

Gast #1151065
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.
Gast #1151072
>und möchte einen ATmega16 simulieren.

Wozu? Programmiere ihn und probiere es am
realen Objekt aus. Simulatoren tun nicht immer
das was man erwartet.
Gast #1151075
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
Persönliche Seite #1151104
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
Gast #1151111
Tja ehh.. auf welche Weise teile ich dem denn mit, dass das Programm 
zuende ist?
1
.def N    = R16
2
.def I    = R17
3
.def TMP  = R18
4
.def LAST1  = R19
5
.def LAST2  = R20
6

7
.CSEG
8
.ORG $0000
9

10
INIT:  ldi  N, 5
11
    ldi I, 0
12
    ldi TMP, 0
13
    ldi LAST1, 0
14
    ldi LAST2, 1
15

16
LOOP:  cp N,I
17
    breq END
18

19
    mov TMP, LAST2
20
    add TMP, LAST1
21
    mov LAST1, LAST2
22
    mov LAST2, TMP
23

24
    inc I,1
25
    jmp LOOP
26

27
END:
Persönliche Seite #1151128
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.
Gast #1151131
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.