Während dem schreiben war Oliver schneller ...
Ich kenne mich nicht sehr gut mit FreeRTOS aus, aber ein grobes
versändnis habe ich:
Moritz M. schrieb:
> 1. Die IdleHook Funktion wird doch immer aufgerufen wenn der IDLE-Task
> "aktiv" wird oder?
Ja. Da ein prozessor nicht einfach nichts tun kann muss es eine funktion
geben die "nichts tun" implementiert. Das ist die IdleHook Funktion. In
der kannst du z.b. eine PWM generieren die ein analoges Messinstrument
betreibt. Je größer der ausschlag desto geringer ist die CPU-Last.
Prinzipiell könnte der uC an der stelle auch in "Sleep Mode" gehen um
wirklich nichts zu tun. Aufgeweckt werden kann er dann wieder durch den
Tick-Interrupt. Ob das gemacht wird weiß ich nicht und wenn dann ist es
von der verwendeten Hardware abhängig.
> 2. Wann genau wird die TickHook Funktion aufgerufen?
http://www.freertos.org/a00016.html
"The tick interrupt can optionally call an application defined hook (or
callback) function - the tick hook. The tick hook provides a convenient
place to implement timer functionality."
Liest sich so als ob er zu jedem Tick nach der eigentlichen
SystemTick-Rouine augerufen wird.
> 3. Was ist bei FreeRTOS ein "port"?
FreeRTOS versucht möglichst generisch zu bleibem. D.h. so wenig
hardwarespezifischen code wie möglich. Ports sind die Codeschnipsel die
doch Prozessorabhängig sind. Z.b. ist es klar dass dier SystemTick
Interrupt hardwarespezifisch ist (z.b. beim AVR muss ein Timer
konfiguriert werden. Der Code ist NUR für den verwendeten AVR gültig).
> 4. Was ist ein Interrupt in FreeRTOS? Werden daduch alle anderen Tasks
> unterbrochen?
Ein interrut bleibt ein Interrupt. Wenn du ein ISR handler schreibst
liegt es an dir für eine schnellsmögliche abarbeitung zu sorgen. Je nach
verwendetem uC blockierst du in der Zeit alles andere. Ob der SystemTick
ggf. eine höhere ISR Priorität hat musst du geziehlt nachschauen.
> Bis jetzt hab ich mir das irgentwie immer so zusammen gereimt aber jetzt
> will ich es genau wissen.
> Wäre toll wenn jemand dazu was weiß!
Google mal ... was ist überhaupt ein Betriebsystem, was ist ein
Prozess/Task/Thread?
Es gibt ein nettes Buch. "Modern Operating Systems". Ist zwar garnicht
mehr so modern, aber die prinzipien bleiben gleich.
Wenn du das Prinzip verstanden hast wird dir vieles klar.