Usare il multitasking di FreeRTOS su Arduino

L’IDE e l’ambiente di Arduino hanno molti driver e librerie disponibili a portata di mano, ma questo sistema open-source non supporta il multi-tasking.
Una soluzione arriva da FreeRTOS, un sistema operativo in real-time utilizzato nei dispositivi embedded semplice e facile da usare che può essere implementata nell’IDE di Arduino come libreria.

 

Background

La maggior parte dei sistemi operativi consente l’esecuzione simultanea di più programmi o thread, ovvero permette il multi-tasking.
Ma in realtà, ogni core del processore può eseguire un solo programma in un dato momento, è grazie ad una parte del sistema operativo chiamato scheduler (responsabile della decisione su quale programma eseguire) che fornisce l’illusione dell’esecuzione simultanea passando rapidamente da un programma all’altro.

Lo scheduler in un sistema operativo in tempo reale (RTOS) è progettato per fornire un modello di esecuzione prevedibile (normalmente descritto come deterministico). Ciò è particolarmente interessante per i sistemi embedded, come i dispositivi Arduino, poiché i sistemi embedded hanno spesso requisiti in tempo reale.

Gli scheduler tradizionali in tempo reale, come lo scheduler utilizzato in FreeRTOS, consentono all’utente di assegnare una priorità a ciascun thread di esecuzione.
Lo scheduler utilizza quindi la priorità per sapere quale thread verrà eseguito successivamente.
In FreeRTOS, un thread di esecuzione è chiamato Task.

Per maggiori dettagli

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu