Beetje Coderen

Les 18

Een RTOS: taken en scheduling

FreeRTOS-taken maken, hoe de scheduler werkt met prioriteiten en preemption, vTaskDelay en het kiezen van de stackgrootte.

⏱ 60 minuten leestijd + oefenen

🎯 Na deze les kun je

  • uitleggen wat een RTOS toevoegt ten opzichte van een hoofdlus met state machines
  • FreeRTOS-taken aanmaken met xTaskCreate
  • uitleggen hoe een preemptieve scheduler met prioriteiten werkt
  • vTaskDelay en vTaskDelayUntil correct gebruiken en een stackgrootte kiezen

In les 13 liet je meerdere taken naast elkaar draaien in één hoofdlus. Dat werkt goed zolang elke taak snel even kijkt en weer teruggeeft. Maar het wordt lastig als een taak een lange berekening heeft, of als één taak heel snel moet reageren terwijl een andere bezig is. Een RTOS (Real-Time Operating System) lost dat op: elke taak krijgt zijn eigen stack en zijn eigen "hoofdlus", en een scheduler wisselt tussen de taken.

We gebruiken FreeRTOS, het meest gebruikte RTOS voor microcontrollers. Het draait op de ATmega328P (bijvoorbeeld via de port in de bibliotheek Arduino_FreeRTOS of de GCC/ATmega-port van FreeRTOS), maar 2 KB RAM is krap: reken op hooguit drie of vier kleine taken. Op een RP2040 of STM32 heb je veel meer ruimte.

🔒 Deze les zit in het betaalde deel van de cursus

De eerste 5 lessen zijn gratis; de rest van de cursus, de live labs en het certificaat koop je eenmalig (€ 29,00). Geen abonnement. Online afrekenen komt binnenkort beschikbaar.

Wil je een seintje als het zover is?