Hallo Zusammen, weiß jemand zufällig, wie ich die Geschwindigkeit des Simulators in AVR Studio 5 anpassen kann? Standardmäßig läuft dieser nämlich nur mit 1 MHz. In den Einstellungen habe ich bisher vergeblich gesucht. Gruß Stephan
Ich glaub ich hab was gefunden. Der Wert "Frequency" lässt sich zumindest direkt in der Ansicht "Processor" editieren wenn der Simulator läuft. //Nachtrag: Das hat aber irgendwie keine Auswirkung ...
Das kann man nicht. Die Helden bei Atmel haben beim Wechsel von Studio 4 auf Studio 5 die Nachteile von Studio 4 übernommen und die Vorteile sausen lassen.
Hannes Jaeger schrieb: > Das kann man nicht. Die Helden bei Atmel haben beim Wechsel von Studio 4 > auf Studio 5 die Nachteile von Studio 4 übernommen und die Vorteile > sausen lassen. danke für deine Antwort. Das ist wirklich schade, dass diese Funktion nicht mehr unterstützt wird :(
Hi
>//Nachtrag: Das hat aber irgendwie keine Auswirkung ...
Welche hast du erwartet?
MfG Spess
spess53 schrieb: >>//Nachtrag: Das hat aber irgendwie keine Auswirkung ... > > Welche hast du erwartet? eine schnellere Codeausführung - zumindest nach einem Neustart des Simulators. Der Wert bleibt nämlich erhalten. Ich verstehe nicht, warum dieser Parameter überhaupt editierbar ist ... Gruß Stephan
Stephan M. schrieb: > spess53 schrieb: > >>>//Nachtrag: Das hat aber irgendwie keine Auswirkung ... >> >> Welche hast du erwartet? > > eine schnellere Codeausführung da hast du aber irgendetwas gründlich missverstanden. Wie schnell der Code simuliert wird, hängt hauptsächlich von der Geschwindigkeit deines PC ab. In der Simulation ist die Realzeit ziemlich uninteressant. Wichtig ist die Simulationszeit. Ob dein PC zur Simulation von 1 Mio µC-Takten 2 oder 3 Sekunden braucht, ist (abgesehen von der nervenden Warterei) sowas von egal. > dieser Parameter überhaupt editierbar ist ... Weil das Studio die verbrauchte Anzahl Prozessortakte in verbauchte Zeit umrechnen kann. Und DIESE Zahl ist es, die tatsächlich interessant ist, braucht man sie doch zb um zu entscheiden, wie lange (in Zeiteinheiten) eine ISR braucht. Und zwar in der Realität, nicht in der Simulation.
Karl Heinz Buchegger schrieb: > Stephan M. schrieb: > da hast du aber irgendetwas gründlich missverstanden. > Wie schnell der Code simuliert wird, hängt hauptsächlich von der > Geschwindigkeit deines PC ab. bist du dir ganz sicher, dass das AVR-Studio die Simulation nicht künstlich verzögert, damit die Geschwindigkeit in etwa der des Atmegas entspricht? Bei http://compilers.cs.ucla.edu/avrora/ kann ich schließlich auch angeben, ob ich eine Simulation in Echtzeit wünsche (dauert tatsächlich so lange wie auf dem realen Chip), oder ob die volle Rechenkapazität des Computers genutzt werden soll. Was nun stimmt hängt ganz und allein von der Umsetzung des Simulators ab. Hast du hier denn nähere Informationen? Gruß Stephan
Stephan M. schrieb: > Karl Heinz Buchegger schrieb: >> Stephan M. schrieb: > >> da hast du aber irgendetwas gründlich missverstanden. >> Wie schnell der Code simuliert wird, hängt hauptsächlich von der >> Geschwindigkeit deines PC ab. > > bist du dir ganz sicher, dass das AVR-Studio die Simulation nicht > künstlich verzögert, damit die Geschwindigkeit in etwa der des Atmegas > entspricht? Die interessiert keinen. Was mich aber interessiert: Wie lange braucht ein Programmstück - und zwar auf der realen Hardware. Und damit der SImulator das ausrechnen kann, muss er die Taktfrequenz kennen.
Edit: Wobei man allerdings tatsächlich zugeben muss, dass (zumindest im 4-er) der Simulator schon arg langsam war.
Karl Heinz Buchegger schrieb: > Die interessiert keinen. > > Was mich aber interessiert: Wie lange braucht ein Programmstück - und > zwar auf der realen Hardware. > Und damit der SImulator das ausrechnen kann, muss er die Taktfrequenz > kennen. ich sehe jetzt allerdings keinen zwingenden Widerspruch in dem, was ich anfangs geschrieben hab. Eine Zeitberechnung ist mit und ohne künstliche Verzögerung möglich, wenn der Simulator weiß, mit welcher Frequenz die spätere Hardware taktet. Ich finde es aber durchaus angenehm, bei einer Simulation allein an der Geschwindigkeit der Abarbeitung einen Eindruck zu bekommen, wie lange denn nun bestimmte Programmabschnitte laufen. Wie gesagt, ich kenne das Verhalten so von einem anderen Simulator. Hier lässt sich eine "Realtime-Simulation" aktivieren. Finde ich ganz angenehm ... Aber jetzt weiß ich ja, dass der AVR Studio Simulator hier anders arbeitet :) . Danke für eure Antworten! Gruß Stephan
Du kannst ja mal bei Atmel anfragen, ob sie Interesse daran hätten, wenn du ihnen einen Simulator baust, der tatsächlich mit allen von Atmel gebauten µC, mit allen Hardware Spezialtäten zurecht kommt, der als Debugger den Rückweg vom Assembler Code in den C-Source Code findet UND auch noch in Echtzeit abläuft und über ein Set von konfigurierbaren simulierten Geräten verfügt, die du virtuell an die Portpins anschliessen kannst. Ach: hab ich vergessen - der auch noch bei Neuerscheinungen einfach auf den neuen µC konfigurierbar ist. Wie gesagt: Ich gestehe dir gerne zu, dass der Simulator in manchen Bereichen quälend langsam ist. Aber dazu hat man dann ja auch die reale Hardware um sein Programm laufen zu lassen.
Karl Heinz Buchegger schrieb: > Was mich aber interessiert: Wie lange braucht ein Programmstück - und > zwar auf der realen Hardware. > Und damit der SImulator das ausrechnen kann, muss er die Taktfrequenz > kennen. Oder du mußt mit dem Dreisatz umgehen können, um auf die reale Ausführungszeit zu kommen ;-)
Wolfgang schrieb: > Karl Heinz Buchegger schrieb: >> Was mich aber interessiert: Wie lange braucht ein Programmstück - und >> zwar auf der realen Hardware. >> Und damit der SImulator das ausrechnen kann, muss er die Taktfrequenz >> kennen. > > Oder du mußt mit dem Dreisatz umgehen können, um auf die reale > Ausführungszeit zu kommen ;-) wobei ich auch damit nicht die Geschwindigkeit auf realer Hardware berechnen kann. Wenn der Simulator all die Besonderheiten der unterschiedlichen Atmel-Prozessoren gar nicht kennt, so wird er wohl nur von einem bestimmten Durchsatz an Instruktionen pro Sekunde ausgehen können ... Ob der Simulator nun langsamer oder schneller läuft ändert weder was an den Auswertemöglichkeiten noch sonst was. Trotzdem danke für den Tipp ;) Aber nun weiß ich ja, dass er nicht so arbeitet wie ich es anfangs vermutet hatte. Für reale Zeiteinschätzungen greift man am besten auf reale Hardware zurück. Gruß Stephan
Stephan M. schrieb: > Wolfgang schrieb: >> Karl Heinz Buchegger schrieb: >>> Was mich aber interessiert: Wie lange braucht ein Programmstück - und >>> zwar auf der realen Hardware. >>> Und damit der SImulator das ausrechnen kann, muss er die Taktfrequenz >>> kennen. >> >> Oder du mußt mit dem Dreisatz umgehen können, um auf die reale >> Ausführungszeit zu kommen ;-) > > wobei ich auch damit nicht die Geschwindigkeit auf realer Hardware > berechnen kann. Natrülich kannst du das. > Wenn der Simulator all die Besonderheiten der > unterschiedlichen Atmel-Prozessoren gar nicht kennt, so wird er wohl nur > von einem bestimmten Durchsatz an Instruktionen pro Sekunde ausgehen > können ... Ah geh. Der Simulator simuliert die komplette CPU. Inklusive aller Instruktionen und selbstverständlich weiß er wieviele CPU Takte welche Instruktion verbraucht. > Für reale Zeiteinschätzungen greift man am besten auf reale Hardware > zurück. Oder man schaut auf die direkt darunter eingeblendete 'Stoppuhr'. Die kann man auch auf 0 zurückstellen und so zb direkt (in Millisekunden oder Mikrosekunden) ablesen, in welchen Zeitabständen ein Timerinterrupt kommt, oder wie lange es vom Beginn der ISR bis zum Ende dauert, oder ....
Hi > Wenn der Simulator all die Besonderheiten der >unterschiedlichen Atmel-Prozessoren gar nicht kennt, so wird er wohl nur >von einem bestimmten Durchsatz an Instruktionen pro Sekunde ausgehen >können ... Unsinn. Der Simulator führt jeden Assemblerbefehl aus. Da die benötigten Takte eines Befehl bekannt sind stimmt auch die berechnete Zeit. MfG Spess
dann verstehe ich nicht, warum eine Echtzeitausführung derart problematisch sein soll, dass ich hier für Atmel einen Simulator schreiben soll ... Wenn er die CPU-Zyklen für jeden Befehl kennt, dann liegen doch die nötigen Informationen vor. Von externer Hardware hat ja niemand was gesagt. Aber nun gut, ich denke wir drehen uns im Kreis. Meine ursprüngliche Frage ist ja hinreichend beantwortet :)
Die Angabe der Taktfrequenz ist wie Karl Heinz Buchegger schon schrieb: Einzig und allein für die Berechnung der abgelaufenen Zeit. Die Stopuhr kann man beim Studio 4 von ms auf µs umstellen, sowie neu starten. (Studio 5 bin ich gerade beim einarbeiten: Habe ich erst seit gestern in der Begutachtung) Diese Funktion ist ganz praktisch, wenn man z.B. wissen will, wie lange eine Berechnung bei Taktfrequenz x Mhz dauert... oder wenn man mal eine genaue 1ms-Warteschleife in Assembler aus"NOP"pen muss.
Stephan M. schrieb: > dann verstehe ich nicht, warum eine Echtzeitausführung derart > problematisch sein soll, dass ich hier für Atmel einen Simulator > schreiben soll ... Niemand von uns weiß, wie dieser Simulator aufgebaut ist. Aber eines kannst du dir abschminken: Dass im Simulator irgendwelche Däumchen gedreht werden, damit er langsamer läuft. > Wenn er die CPU-Zyklen für jeden Befehl kennt, dann liegen doch die > nötigen Informationen vor. Macht er doch. Der Simulator zählt brav die Takte zusammen und weil er nett ist, rechnet er die Taktanzahl auch noch in eine Zeit um. Was du haben willst ist ein Emulator und kein Simulator. Und das dürfte zb auf Windows um Millisekundenbereich etwas schwer werden :-)
Hi >Wenn er die CPU-Zyklen für jeden Befehl kennt, dann liegen doch die >nötigen Informationen vor. Von externer Hardware hat ja niemand was >gesagt. Wer hat denn etwas von externer Hardware gesagt? AVRs haben eigene Hardware, wie Timer, serielle Schnittstellen, ADC usw., die auch simuliert werden wollen. Und das kostet die Zeit. MfG Spess
Stephan M. schrieb: > Für reale Zeiteinschätzungen greift man am besten auf reale Hardware > zurück. Oder man verwendet AVR-Studio 4. Das hatte den Taktzähler, die Zeitanzeige und eine einstellbare CPU Frequenz. Wie kommst du drauf, dass der Simulator nicht die CPU simuliert, sondern einen hypthetischen Durchschnittsprozessor? Dann könnte man sich das ganze Ding sparen, weil es schon irgendwie auf den realen Prozessor drauf an kommt.
Wolfgang schrieb: > Stephan M. schrieb: >> Für reale Zeiteinschätzungen greift man am besten auf reale Hardware >> zurück. > > Oder man verwendet AVR-Studio 4. Das hatte den Taktzähler, die > Zeitanzeige und eine einstellbare CPU Frequenz. Gibts die im 5-er nicht mehr? (Ich verwende noch das 4-er)
spess53 schrieb: > Wer hat denn etwas von externer Hardware gesagt? AVRs haben eigene Karl Heinz Buchegger schrieb: > und über ein Set von konfigurierbaren > simulierten Geräten verfügt, die du virtuell an die Portpins > anschliessen kannst. > Aber eines kannst du dir abschminken: ok. Tut mir Leid, wenn ich die Begriffe Emulator und Simulator verwechselt haben sollte. Es wird nicht mehr vorkommen. Kein Grund sich wegen sowas zu streiten ...
Stephan M. schrieb: > spess53 schrieb: > >> Wer hat denn etwas von externer Hardware gesagt? AVRs haben eigene > > Karl Heinz Buchegger schrieb: >> und über ein Set von konfigurierbaren >> simulierten Geräten verfügt, die du virtuell an die Portpins >> anschliessen kannst. Das war ja auch ein Vorschlag, was dein Simulator noch so alles können könnte um interessant zu sein :-)
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.