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
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 ?
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.
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
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
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
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....
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
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.
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.
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
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?
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
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.
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.
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
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.