Butterfly, GCC Port im AVRStudio simulieren

Gast #398928
Lesenswert?
• ▲
▼
Hi,

ich versuche mich gerade mit dem Butterlfy anzufreunden.
Da das AVRStudio zwischenzeitlich auch den GCC Port unterstützt, möchte
ich im AVRStudio samt den C Dateien simulieren. Dummerweise komme ich
nicht über die OSCCAL kalibrierung hinaus.
Weiß also nicht woran das liegen könnte, normalerweise sollte ja die
OSCCAL Funktion ebenfalls zu simulieren sein.

Vielleicht hat sich bereits jemand von Euch mit diesem Problem
auseinander gesetzt.

Viele Grüße
Gast #398929
Lesenswert?
• ▲
▼
Habe schon eine Weile nicht mehr den gcc-Port auf den Simulator
losgelassen. Als ich seinerzeit den Code von Atmel nach gcc portiert
habe, habe ich den Aufruf der Kalibrierroutine auskommentiert, da die
Warteschleifen innerhalb der Kalibrierroutine im Simulator nur sehr
lagsam ablaufen.

Martin Thomas
Gast #398930
Lesenswert?
• ▲
▼
Hi Martin,

vielen Dank für Deine Antwort.
Ich weiß nicht, ob das für weitere Funktionen in der Simulation
notwendig wird, die Kalibrierungsroutine zu durchlaufen.
Ich habe das mal komplett durchlaufen lassen, es hatte sich kein OSCCAL
Wert eingestellt gehabt...
Sind eigentlich die Default Einstellungen des Controllers in der
Simulation angepasst? Ich mein, Dein Port ist ja für 1MHz geschrieben.
Nach Aufruf des Projekts im AVRStudio und Simulation war jedoch 4MHz
voreingestellt, was ich dann später aber auf 1 MHz korrigiert habe.
Nichts desto trotz sollte doch die Kalibrierungsroutine laufen, oder?

Viele Dank nochmals für Dein Hilfe.
Grüße
Gast #398931
Lesenswert?
• ▲
▼
Hallo Klaus,

>Ich weiß nicht, ob das für weitere Funktionen in der Simulation
>notwendig wird, die Kalibrierungsroutine zu durchlaufen.
Nicht wirklich. Die Kalibrierung dient auf der realen Hardware dazu,
die Taktfrequenz des internen Taktgebers im AVR mittels 32kHz-Quarz auf
1MHz zu kalibrieren. Wichtig hauptsaechlich fuer UART. Fuer die
Simulation eher uninteressant.

>Ich habe das mal komplett durchlaufen lassen, es hatte sich
>kein OSCCAL Wert eingestellt gehabt...
Kann gut sein. Bin nicht sicher, ob AVRStudio den Async-Mode eines
Timers richtig emuliert. Ohne diese Funktion, wird die Simulation der
Kalibrierung und auch die RTC nicht funktionieren.

>Sind eigentlich die Default Einstellungen des Controllers in der
>Simulation angepasst? Ich mein, Dein Port ist ja für 1MHz
>geschrieben.
Nicht nur mein Port, das hat Atmel im Original schon so implementiert.
Der Divider des internen Taktgebers wird bei Start auf "/8"
eingestellt (8/8=1MHz). Nur bei UART-Transfer im "Name upload" und im
Bootloader wird der FCPU auf 2MHz (=/4) eingestellt, um 19200 bps mit
moeglichst geringem Fehler zu erreichen.

>Nach Aufruf des Projekts im AVRStudio und Simulation war jedoch
>4MHz voreingestellt, was ich dann später aber auf 1 MHz
>korrigiert habe.
Ja, 1MHz sollte fuer die Simulation die richtig Einstellung sein. Die
UART-Simulation ist meines wissens ohnehin noch nicht implementiert.
Weiss nicht, ob AVRStudio bei der Laufzeitmessung in der Simulation den
Divider beruecksichtigt. Sorry, die Einstellung zur Simulation in der
Projektdatei habe ich mir nie angeschaut und auch den fertigen Code
nicht komplett simuliert. Ich habe die AVRStudio-Projektdatei
hauptsaechlich deswegen beigelegt, weil die libm.a bei einem neuen
"gcc-plugin"-Projekt nicht per default gelinkt wird und ohne diese
Einstellung eine zu groesse Binaerdateien erzeugt wird. Hatte deswegen
ein paar Nachfragen per e-mail.

> Nichts desto trotz sollte doch die Kalibrierungsroutine
> laufen, oder?
Wie geschrieben, nur wenn der Simulator den Divider und den Async-Mode
richtig emuliert. Bei beidem bin ich mir nicht sicher, den Simulator
nutzt ich nur sehr selten fuer Laufzeitmessungen von Unterfunktionen.
Bei AVRFreaks gibt es ein extra Forum fuer AVRStudio. Falls die
online-Dokumentation keine Erleuchtung bringt, einfach dort fragen.

Hoffe, es hilft.
Martin Thomas

Antwort schreiben

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.

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.