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


von Klaus (Gast)


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

von Martin Thomas (Gast)


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

von Klaus (Gast)


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

von Martin Thomas (Gast)


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

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.