Forum: Compiler & IDEs Simulator des Studio 7


von Werner F. (frewer)


Lesenswert?

Hallo,
habe folgende Probleme mit dem Verständnis des Studio 7 Simulators:
Mein Programm läuft auf einem ATtiny2323A, der auch ausgewählt ist. Beim 
aktivieren des Simulators werden progFlash, Status, IO, Register 
korrekt, beim Öffnen des Memory (data IRAM) wird memory1 ab $0060 mit 
nur ?? angezeigt. Simuliere ich nun im 1Schritt-Modus, kann ich in allen 
Anzeigen mein Programm verfolgen bis auf das memory1, da bleiben die ??. 
Laut Datenblatt beginnt das RAM bei $0060. Gehe ich in der memory1 
Anzeige nach unten, dann sehe ich bei $0360 meine eingegebene Zahl, bei 
der nächsten Dateneingabe ins RAM (1Schritt-Methode) finde ich den RAM 
Bereich in der Anzeige memory1 zB bei $0660 usw., obwohl beim click auf 
den nächsten SimSchritt die memory1 Anzeige wieder auf $0060 springt mit 
nur ??.
Was mache ich falsch?
Was bedeutet memory1, memory2, etc.(die alle das Gleiche zeigen)?
mfG Frewer

: Verschoben durch Moderator
von Chris S. (Firma: hier&da) (keiningenieur)


Lesenswert?

Werner F. schrieb:
> Hallo,
> habe folgende Probleme mit dem Verständnis des Studio 7 Simulators:
> Mein Programm läuft auf einem ATtiny2323A, der auch ausgewählt ist. Beim
> aktivieren des Simulators werden progFlash, Status, IO, Register
> korrekt, beim Öffnen des Memory (data IRAM) wird memory1 ab $0060 mit
> nur ?? angezeigt. Simuliere ich nun im 1Schritt-Modus, kann ich in allen
> Anzeigen mein Programm verfolgen bis auf das memory1, da bleiben die ??.
> Laut Datenblatt beginnt das RAM bei $0060. Gehe ich in der memory1
> Anzeige nach unten, dann sehe ich bei $0360 meine eingegebene Zahl, bei
> der nächsten Dateneingabe ins RAM (1Schritt-Methode) finde ich den RAM
> Bereich in der Anzeige memory1 zB bei $0660 usw., obwohl beim click auf
> den nächsten SimSchritt die memory1 Anzeige wieder auf $0060 springt mit
> nur ??. Was mache ich falsch? Was bedeutet memory1, memory2, etc.(die alle > das 
Gleiche zeigen)?
> mfG Frewer

Programmcode ?

von Peter D. (peda)


Lesenswert?

Werner F. schrieb:
> Mein Programm läuft auf einem ATtiny2323A

Welches?
ATtiny2323A gibbet nich.

Werner F. schrieb:
> wird memory1 ab $0060 mit
> nur ?? angezeigt.

Nach einem Reset ist der SRAM undefiniert, nur die IO-Register werden 
vorgeladen.

von Werner F. (frewer)


Lesenswert?

Danke für Eure Antworten.
1. Es geht um diesen ProgTeil:
********************************
main:
  ldi yh,high(Puffer)  ;Adresse nach y
  ldi yl,low(Puffer)
  ldi r19,44
  clr  r16    ;lösche Puffer komplett
  st  y+,r16
  dec r19
  brne PC-2    ;weiter 0 nach y
;lade Tabelle in den Puffer
  ldi yh,high(Puffer)  ; Adresse RAM-Puffer
  ldi yl,low(Puffer)
  ldi zh,high(Tab2*2)     ; Adresse der LED Tabelle
  ldi  zl,low(Tab2*2)
  ldi  r19,10    ;10 Zeilen
man00:
  ldi r18,4    ;4 Datensätze
man01:
  lpm r0,z+
  st  y+,r0
  dec r18      ;alle Datensätze proZeile?
  brne man01    ;nein
  dec r19      ;ja, alle Zeilen?
  brne man00     ;nein weiter
man03:        ;ja
  rjmp man03
*******************
2. den ATtiny2323A gibt es, er ist die Nachfolge des ATtiny2323 (siehe 
Microchip)
Ich möchte mit dem Sim sehen, ob ich den Puffer richtig lade, der später 
seriell ausgegeben wird. Ich kann auch sehen, dass das Programm 
funktioniert, wenn ich den PORTB.2 (mein Ausgang) beobachte, ich möchte 
aber sehen, ob meine Bitkombination im Puffer meiner Tabelle entspricht.
mfG Frewer

von Frank K. (fchk)


Lesenswert?

Werner F. schrieb:

> 2. den ATtiny2323A gibt es, er ist die Nachfolge des ATtiny2323 (siehe
> Microchip)

Du meinst sicher den 2313A, nicht den 2323A. Don't drink and type!

fchk

von Werner F. (frewer)


Lesenswert?

Entschuldigung, ja es ist der 2313A (Tippfehler!)
Zum Glück zeigt einem die Suchmaschine gleich den richtigen 2313A an, 
wenn man ggf 2323 eintippt.
Damit ist aber mein Verständnisproblem des Simulators und seiner Anzeige 
nicht gelöst. Ich würde erwarten, dass die Memory-Anzeige beim 
schrittweisen Programmdurchlauf anzeigt, was aus meiner Tabelle in den 
Puffer geschrieben wird.
mfG Frewer

von Chris S. (Firma: hier&da) (keiningenieur)


Lesenswert?

Werner F. schrieb:
> ********************************
> main:
>   ldi yh,high(Puffer)  ;Adresse nach y
>   ldi yl,low(Puffer)
>   ldi r19,44
>   clr  r16    ;lösche Puffer komplett
>   st  y+,r16
>   dec r19
>   brne PC-2    ;weiter 0 nach y
> ;lade Tabelle in den Puffer
>   ldi yh,high(Puffer)  ; Adresse RAM-Puffer
>   ldi yl,low(Puffer)
Unter welcher Adresse ist der Puffer denn adressiert ?

>   ldi zh,high(Tab2*2)     ; Adresse der LED Tabelle
>   ldi  zl,low(Tab2*2)

und die Tabelle existiert im Flash auch ?

>   ldi  r19,10    ;10 Zeilen
> man00:
>   ldi r18,4    ;4 Datensätze
> man01:
>   lpm r0,z+
>   st  y+,r0
>   dec r18      ;alle Datensätze proZeile?
>   brne man01    ;nein
>   dec r19      ;ja, alle Zeilen?
>   brne man00     ;nein weiter
> man03:        ;ja
>   rjmp man03
> *******************

letztlich musst du siehe hier 
https://www.microchip.com/content/dam/mchp/documents/atmel-start/Atmel-Studio-7-User-Guide.pdf
unter 4.15 Memory Fenster hinzufügen und Zwar für den RAM  Flash  
Register und im Fenster unter Memory den richtigen Speicher auswählen...

AVR Studio 4.xx war deutlich besser als dieser Dreck von MCP das musste 
mal gesagt werden....

von Werner F. (frewer)


Lesenswert?

Hallo Chris, zuerst mal vielen Dank! Habe mir das Tutorial runtergeladen 
komme trotzdem nicht weiter. Ich finde zB kein 4.15 aber davon abgesehen 
hilft das Tutorial nicht(ich habe die zutreffenden Teile verinnerlicht, 
was nicht ganz einfach ist). Da wird zwar viel von memory geschrieben 
aber nicht zB von memory1, 2,3 ,4 wie das bei mir ist. Das ganze 
Tutorial passt nicht zu meinem Studio7-6.2.92... Mein momentaner 
Verdacht ist, dass das Problem mit der Auswahl des ATtiny zusammenhängt, 
denn wenn ich zB den ATMEGA8 nehme, funktioniert die memory-Anzeige.
2. Ich gebe Dir recht, dass das Studio4 wesentlich einfacher und 
funktioneller war. Habe Jahre damit gearbeitet. Leider habe ich es nicht 
mehr parat.
Bin weiter am Suchen und will mal Microchip anschreiben. Vielleicht 
kennt sich dort jemand aus.
mfG Frewer

Sorry es muß heißen Studio7 7.0.2594

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?


von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Werner F. schrieb:

> Da wird zwar viel von memory geschrieben
> aber nicht zB von memory1, 2,3 ,4 wie das bei mir ist.

Das sind einfach mehrere mögliche Fenster, um mehrere Speicherbereiche 
gleichzeitig im Auge behalten zu können. Jedes Fenster für sich verhält 
sich aber komplett gleich. Deswegen macht es keinen Sinn, auf 
Unterschiede zwischem memory1, memory2 usw. einzugehen: es gibt einfach 
keine.

> Mein momentaner
> Verdacht ist, dass das Problem mit der Auswahl des ATtiny zusammenhängt,
> denn wenn ich zB den ATMEGA8 nehme, funktioniert die memory-Anzeige.

Ja, so ist das wirklich. Der Simulator für den 2313 beim Studio 7 ist 
offensichtlich defekt.

Auch im Microchip-Studio mit dem neuesten Tiny-Devicepack.

> will mal Microchip anschreiben

Die machen am Studio rein garnix mehr. Die machen nur noch was an ihrem 
MPLAB-X.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Ob S. schrieb:

> Ja, so ist das wirklich. Der Simulator für den 2313 beim Studio 7 ist
> offensichtlich defekt.

Genauso 2313A.

Der 4313 allerdings funktioniert.

von Werner F. (frewer)


Lesenswert?

Vielen Dank für die Infos. Wenn der Simulator mit dem 4313 funktioniert, 
dann werde ich das versuchen. Das sind ja bis auf das Flash die gleichen 
Typen.
mfG Frewer

Stimmt, mit dem ATtiny4313 funktioniert der Simulator problemlos.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Werner F. schrieb:

> Das sind ja bis auf das Flash die gleichen
> Typen

Nö, 4313 hat auch doppelt so viel viel RAM. Und das genau ist der 
Knackpunkt. Siehe weiter unten...

> Stimmt, mit dem ATtiny4313 funktioniert der Simulator problemlos.

Ich lach' mich tot. Auch 2313/2313A funktioniert.

Der Trick ist: die Memory-Fenster so klein zu machen, dass sämtliche 
angezeigten Speicherstellen innerhalb des im gewählten Adressbereich 
existierenden Bereichs liegen. Liegt auch nur das letzte angezeigte Byte 
außerhalb, dann führt das dazu, dass nicht etwa nur bei eben diesem 
einen Byte Fragezeichen angezeigt werden, sondern bei allen angezeigten.

Mein Gott, wer hat das programmiert?

von Werner F. (frewer)


Lesenswert?

Also bei mir funktioniert es bei der MC ATtiny2313A nicht, auch wenn ich 
an der Größe des Memory1 Anzeigefenster herumspiele. Im Gegenteil, es 
ist noch witziger, denn wenn ich ins RAM schreibe, dann finde ich den 
Eintrag unter der Adresse $03xx (jedesmal anders), beim nächsten 
Schreiben ist wieder alles ?? und ich muß einen anderen Bereich, 
manchmal $0060 ff absuchen und beim nächsten mal wieder wo anders. Also 
bleibe ich beim ATtiny4313 (mit größerem Flash und SRAM). Die Änderungen 
stören mich ja nicht, da mein Programm auf den 2313A passt.
mfG Frewer

von Peter D. (peda)


Lesenswert?

Werner F. schrieb:
> Also bei mir funktioniert es bei der MC ATtiny2313A nicht

Da ist ein Fehler im Datenblatt. Der SRAM geht nicht bis 0x0E0, sondern 
nur bis 0x0DF.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Werner F. schrieb:

> Im Gegenteil, es
> ist noch witziger, denn wenn ich ins RAM schreibe, dann finde ich den
> Eintrag unter der Adresse $03xx (jedesmal anders), beim nächsten
> Schreiben ist wieder alles ??

Kann ich nicht nachvollziehen. Ich hab's mit deinem Programm getestet 
(fehlende Speicherdeklarationen natürlich hinzugefügt und den 
Flash-Datenbereich mit Spieldaten gefüllt).

Tut exakt das, was es soll und es wird auch alles korrekt angezeigt. 
Jedenfalls ab dem ersten Druck auf F11.

von Werner F. (frewer)


Lesenswert?

Dann benutzen wir unterschiedliche Software von Studio7, denn ich habe 
es jetzt nochmal probiert und zwar mit dem 2313 und auch da passiert es 
wie bisher. Ab $0060 (das natürlich  mit .cseg deklariert wird) auch 
nach F11 alles ??, Bereich verkleinert, es bleibt bei ??.
Ok, da es mit dem 4313 im Simulator klappt, komme ich jetzt zurecht. 
Habe übrigens an den Studio7 support von Microchip geschrieben, ASntwort 
bisher "wir arbeiten an einer Antwort". Ergebnis werde ich natürlich 
hier weitergeben.
mfG Frewer

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Werner F. schrieb:

> Ab $0060 (das natürlich  mit .cseg deklariert wird)

Huch?!

von Werner F. (frewer)


Lesenswert?

Na ja, .dseg natürlich.
Übrigens hat die Microchip einen Teil meiner Fragen zum Thema der 
memory1,2,3,4 wie folgt beantwortet: die memories 1..4 sind identisch 
mit dem SRAM und seien lediglich dafür gedacht, dass man mehr Info 
gleichzeitig darstellen könne. Zum Thema der ?? bei der 2313A Simulation 
will man mir eine weitere Info zusenden. Ich finde gut, dass man sich 
doch mit so einer Anfrage bei Microchip noch beschäftigt.
mfG Frewer

von Werner F. (frewer)


Lesenswert?

Microchip hat zum Hauptpunkt meiner Frage geantwortet:
"Hi Werner,
I have attempted to replicate the issue and can confirm that there is 
indeed a bug in the simulation component. However, please note that 
Atmel Start is no longer actively maintained, and unfortunately, new 
issues reported in this environment cannot be addressed or resolved.
We sincerely apologize for any inconvenience this may cause. For a more 
seamless and supported development experience, we strongly recommend 
migrating your project to MPLAB X IDE v6.25, which offers robust support 
and functionality comparable to Atmel Studio."
Also war meine Vermutung richtig, dass der ATtiny2313 nicht ordentlich 
im Studio7 Simulator abgebildet ist. Da das mit dem 4313 klappt, ist das 
Problem für mich gelöst.
mfG Frewer

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Werner F. schrieb:
> Microchip hat zum Hauptpunkt meiner Frage geantwortet:

> I have attempted to replicate the issue and can confirm that there is
> indeed a bug in the simulation component.

Wird nicht weiter ausgeführt, insbesondere nicht auf den Tiny2313 
fokussiert. Und warum ist das so: Weil es eben tatsächlich ein 
allgemeiner Fehler des Simulators ist. Wenn man die Fenster groß genug 
aufzieht, kann man das z.B. auch für den 4313 provozieren.

D.h.: mit dem simplen Workaround, die Fenster einfach klein genug zu 
machen, ist der Simulator benutzbar. Natürlich betrifft das vor allem 
Devices mit wenig Speicher, bei den mit mehr Speicher ist einfach die 
Standardgröße der Fenster meist schon gering genug.

> However, please note that
> Atmel Start

Wer hat von Atmel Start geredet? Wir hier jedenfalls nicht. Und es hat 
mit dem Simulator-Bug auch nichts zu schaffen.

> For a more
> seamless and supported development experience, we strongly recommend
> migrating your project to MPLAB X IDE v6.25

[...das übliche Blabla...]

> Also war meine Vermutung richtig, dass der ATtiny2313 nicht ordentlich
> im Studio7 Simulator abgebildet ist.

Nein. Allein schon die Tatsache, dass es bei mir (mit dem beschriebenen 
Workaround) geht, beweist doch das Gegenteil.

Also noch mal Kurzfassung: Ja, es gibt einen Fehler. Und nein, der ist 
nicht Tiny2313-spezifisch, sondern ganz allgemein vorhanden. Er fällt 
nur um so eher auf, je weniger SRAM das Target-Device hat.

von Nemopuk (nemopuk)


Lesenswert?

Du sollst immer der neuesten Software nachlaufen, dann kommst du auch 
stets in den maximalen Genuss der neuesten Bugs und fehlender Features.

Manchmal sind alte Werkzeuge besser, wenn man ihre Macken kennt.

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.