Hallo, ich habe mal eine prinzipielle Frage zur Idle Task in FreeRTOS. Diese ruft die Funktion ,,vApplicationIdleHook'' auf, wenn keine andere aktive höherpriore Task zur Ausführung bereitsteht, wodurch sich eine CPU beispielsweise in den Schlafmodus versetzen lässt. Wird diese Task auch jedes mal aufgerufen, wenn eine andere Task fertig ausgeführt wurde, um die Zeit bis zur Ausführung der nächsten Task durch den Scheduler nach Ablauf der RTOS-Tick-Rate (z.B. 1ms, also 1000 Ticks) zu überbrücken oder wird die Idle Task wirklich nur aufgerufen, wenn alle anderen Tasks blockiert sind und nicht zur Ausführung bereitstehen?
Um das wirklich zu wissen, müsste man mal den Quelltext vom Scheduler anschauen. Aber wenn ich das hier sehe: http://www.freertos.org/implementation/a00005.html sieht es so aus, daß die Zeitscheiben nicht in einem festen Raster kommen, sondern z.B. bei (6) bis (7) eine Task ihre Zeitschiebe nicht zuende braucht, und dadurch das Raster nach vorne verschoben wird - die nächste Zeitscheibe beginnt sofort. Insofern ist es gar nicht nötig, den Rest der ungenutzten Zeitscheibe zu überbrücken.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.