Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage Scheduling FreeRTOS


von Christoph (Gast)


Lesenswert?

Hallo,

vielleicht kann mir jemand weiterhelfen. Habe das mit dem Scheduling 
unter FreeRTOS noch nicht so ganz verstanden bzw. bin mir nicht sicher, 
denn ich verstehe es so:

Setzen wir mal vorraus:
configTICK_RATE_HZ ist 100
Preemption und Time Slice sind aktiviert

Es liegt also quasi Round Robin mit Prioritäten vor.

Habe ich nun Task1 und Task2 mit gleicher Priorität, beide Ready und 
nicht anderweitig in Blocked versetzt, so werden diese im Wechsel durch 
den Scheduler aufgerufen, der mit jedem Tick aktiv wird.

Tasks zu einem festen relativen oder absoluten Zeitpunkt kann ich 
offenbar mit OS-eigener Funktionalität nur anhand des Tick-Taktes planen 
(vTaskDelay()/vTaskDelayUntil()), soweit so gut.

Was passiert, wenn ein höher priorisierter Task mitten während einer 
Periodendauer eintrifft /oder den Zustand Blocked verlässt (meinetwegen 
durch eine Direct To Task - Notification, ausgelöst durch einen 
Interrupt)?
Habe ich das richtig verstanden, dass der niedriger priorisierte Task 
dann sofort unterbrochen wird. D.h. ich könnte mittels Timer-Interupt 
auch eine vom Tick unabhängige Verzögerung realisieren?

Danke

von John Doe (Gast)


Lesenswert?


von lolwat (Gast)


Lesenswert?

> Habe ich das richtig verstanden, dass der niedriger priorisierte Task dann 
sofort unterbrochen wird. D.h. ich könnte mittels Timer-Interupt auch eine vom 
Tick unabhängige Verzögerung realisieren?

Ja, das hast du richtig verstanden.

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.