mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Butterfly, GCC Port im AVRStudio simulieren


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.