Forum: Compiler & IDEs CPU Taktung konfigurieren - RTOS


von Andreas (Gast)


Lesenswert?

Hallo Leute,

Wie kann man die CPU Taktung in einem Echtzeitbetriebsystem umstellen?
In meinem Fall wären dies MicroC/OS-II und FreeRTOS.

Es gibt ja bei beiden jede Menge Konfigurationsdateien, bis jetzt konnte 
ich allerdings noch keine finden, bei der ich die Taktung konfigurieren 
könnte.

Ich möchte die Frequenz von 80MHz auf 50MHz heruntertakten.
Oder kann ich dies einfach "selbst" konfigurieren? Wenn ja, stellt sich 
die Frage in welcher Datei.


Vielen Dank für eure Hilfe!
mfg
Andreas

von Peter D. (peda)


Lesenswert?

Andreas schrieb:
> Wie kann man die CPU Taktung in einem Echtzeitbetriebsystem umstellen?

Dem OS ist das herzlich egal.
Es hängt von der CPU ab, ob die sowas unterstützt und wie das geht.
Manche CPUs haben eine PLL oder einen ganzzahligen Teiler.
Du solltest also mal den genauen Typ nennen.


Peter

von Andreas (Gast)


Lesenswert?

Hallo Peter,

Hab auch weiter recherchiert. Ja meine MCU unterstützt PLL.

Ich verwende einen Renesas R32C/111.

Ich kann also die PLL einfach in meiner Application einstellen?

z.B.:

app.c
void Start_up-Task (void *p_arg)
{
  pll_init();
}


pll_init()
{
 //PLL configuriern
}

lg
Andreas

von Oliver (Gast)


Lesenswert?

Andreas schrieb:
> Ich kann also die PLL einfach in meiner Application einstellen?

Solche Fragen, und auch viele andere, beantwortet üblicherweise das 
Datenblatt zum Prozessor. Da musst du durch.

Falls dein OS dazu fertige Funktionen mitbringt, steht auch noch was in 
dessen Dokumentation.

Oliver

von Andreas (Gast)


Lesenswert?

Hallo,

habe soeben die Init Funktion des OS gefunden. Der Port (Renesas 
R32C/111) meines MicroC/OS-II besitzt die Datein app.c und bsp.c, welche 
für die Applikation des Users verwendet werden sollen. In der Datei 
bsp.c gibt es die Funktion TMR_TickInit. Dort wird auch die PLL 
eingestellt.

Vielen Dank für eure Hilfe!
Andreas

von Rtos (Gast)


Lesenswert?

Das reicht aber nicht...das OS hat ja überlicherweise einen Systick, 
also einen Timer Interrupt Handler, der z.B. jede Millisekunde den 
Systick inkrementiert. Die Einstellung des Timers hängt von der PLL 
Einstellung ab, d.h. wenn du jetz einfach die PLL veränderst wird der 
Systick nicht mehr jede Millisekunde kommen.
Ich kenne das jetzt nur bei embOS, dort gibt es einfach ein Define 
OS_FSYS, das man nur auf den neuen Wert setzen muss.

von Andreas (Gast)


Lesenswert?

So ähnlich ist es auch bei MicroC/OS-II (Ebenfalls mit einem define). 
Kenn mich jetzt aus... vielen Dank für eure Hilfe nochmals. Ein tolles 
Forum :-)

Schöne Grüße
Andreas

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.